子父类中的变量,函数,构造函数的特点以及子类的实例化过程
来源:互联网 发布:mastercam线割编程 编辑:程序博客网 时间:2024/05/17 23:32
现在来说一下子父类中的变量,函数,构造函数的特点。
子父类中变量的特点:
class Fu{int num=4;}class Zi extends Fu{int num=5;void show(){System.out.println(super.num);}}public class Test014 {public static void main(String[] args) {// TODO Auto-generated method stubZi z = new Zi();z.show();}}
如果子父类中出现非私有的同名成员变量时,子类要访问本类中的变量,用this来访问,子类要访问父类中的同
名变量,用super来访问。
关于super和this的使用需要注意如下:
1.super的使用和this的使用几乎一致。
2.this代表的是本类对象的引用。
3.super代表的是父类对象的引用。
子父类中函数的特点:子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容,如同父类的函数被覆盖
一样。这种情况就是是子父类中函数的另一个特性,叫做重写,也叫做覆盖。
当子类继承了父类,沿袭了父类的功能到子类中。子类虽然具备了该功能,但是功能的内容却和父类不一致。这
时,没有必要定义新功能,而是使用覆盖特性,保留父类的功能定义,并重写功能内容。
覆盖过程中要注意的问题
1.子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。(public > 默认权限 > private)
2.静态只能覆盖静态。
重载和重写的区别在于:
1.重载是只看同名函数的参数列表。2.重写是子父类方法一模一样,包括返回值类型。
子父类中的构造函数:
class Fu{ Fu()//父类构造函数 { System.out.println("Fu run"); }}class Zi extends Fu{Zi()//子类构造函数{//super();System.out.println("Zi run");}}public class Test015 {public static void main(String[] args) {// TODO Auto-generated method stubZi z = new Zi();//创建子类对象}}
在对子类对象进行初始化时,父类的构造函数也会运行。那是因为子类的构造函数默认第一行有一条隐式的语
句super(); super()会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super()
为什么子类一定要访问父类中的构造函数。
因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始
化的。所以子类在对象初始化时,要先访问一下父类中的构造函数。如果要访问父类中指定的构造函数,可以通过手
动定义super语句的方式来指定。
需要注意一点,super语句一定要定义在子类构造函数的第一行。
子类的实例化过程:
子类的所有的构造函数,默认都会访问父类中空参数的构造函数。因为子类每一个构造函数内的第一行都有一句
隐式的super();当父类中没有空参数的构造函数时,子类必须手动通过super语句的形式来指定要访问父类中的构造函
数。
当然,子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数。子类中至少会有一个构造函数
会访问父类中的构造函数。
补充一个问题:为什么this和super不能在同一行?
因为他们都要写在第一行。
为什么要写在第一行?
因为初始化动作要在最开始完成。
通过对子父类中的变量,函数以及构造函数的特点的一些阐述,加深了对子父类的继承之间的理解。这个问题拓
展的方面比较广,以后学的深入了,会继续拓展。 努力,加油~
- 子父类中的变量,函数,构造函数的特点以及子类的实例化过程
- 子父类中构造函数的特点-----子类实例化过程
- JAVA子父类中构造函数的特点-子类实例化过程
- 【继承】----子父类中的构造函数,子类的实例化过程
- static关键字特点懒汉式继承-子父类中的构造函数-子类的实例化过程final关键字抽象类接口
- 面向对象-简单的(子父类构造函数的特点)-子类实例化过程
- java面向对象-子父类中构造函数的特点-子类实例化过程super
- 面向对象(子父类中构造函数的特点-子类实例化过程)
- 面向对象(子父类中构造函数的特点-子类实例化过程)
- Java重修之路(八)面向对象之继承,子父类中变量、函数、构造函数的特点,子类实例化过程。
- 子类父类中类成员(变量、函数、构造函数)的特点
- 子类父类中类成员(变量、函数、构造函数)的特点
- 继承—子父类中的构造函数-子类的实例化过程
- 01-面向对象(继承-子父类中的构造函数-子类的实例化过程).1 01-面向对象(继承-子父类中的构造函数-子类的实例化过程)2 01-面向对象(继承-子父类中的构造函数-子类的实例化过程)3
- 03-(继承-子父类中的构造函数-子类的实例化过程-图解)1. 03-(继承-子父类中的构造函数-子类的实例化过程-图解)2 03-面向对象(继承-子父类中的构造函数-子类的实例化过程-图解3
- 继承—子父类的构造函数—子类的实例化过程
- 02-面向对象(继承-子父类中的构造函数-子类的实例化过程-细节) 02-面向对象(继承-子父类中的构造函数-子类的实例化过程-细节)2 02-面向对象(继承-子父类中的构造函数-子类的实例化
- 父类中调用子类构造函数实例化子类的实现
- 栈(vector)实现 c++
- 巧妙查询 SQLite中存储文件大小的SQL语句
- Oracle Weblogic nodemanager STOP script Bash and Python
- 面向对象--多继承&派生类对象内存布局分析&各基类指针所指向的位置分析
- Javascript中的回调函数和匿名函数的回调
- 子父类中的变量,函数,构造函数的特点以及子类的实例化过程
- Linux Bash script to remove files older than 3 days
- Custom ShowDialog() method for WPF
- RMI 问题
- linux的五种进程
- JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
- JavaScript中对象属性的添加和删除
- 计算汉明权重的好方法~
- 下一个字典序列(next permutation)