继承——子类的实例化过程
来源:互联网 发布:时时彩缩水软件 编辑:程序博客网 时间:2024/06/05 14:53
子类实例化执行子类的构造函数时,子类构造函数方法体的第一行会有一个隐藏 super(); 来执行父类的无参构造函数。
若父类中没有定义一个无参构造函数,则子类必须用super( );明确指定调用父类的哪一个构造函数。且super( );必须在子类构造函数的第一行。
class Fu{ Fu() { System.out.println("Fu run"); }}class Zi extends Fu{ Zi() { //super(); 这里会有一个默认的隐式语句来初始化父类。 //也可以添加super();来自己执行父类构造函数,此时可添加参数。 System.out.println("Zi run"); }}class Demo{ public static void main(String[] args) { new Zi(); }}//另1:构造函数不存在覆盖,因子类名不可能与父类名相同// 且构造函数不继承
另2
下面这种情况下
因this( )关键字也需要放在第一行,所以当在一个构造函数中第一行放了一个this( )时,super( )就没有了,下面代码实例化执行过程为
new Zi(3)——执行Zi(3)——执行this()——执行Zi()——执行super()
——执行父类的无参构造函数
——执行Zi( )中的System.out.println(“Zi run”);并执行隐藏的return ;
——执行Zi(int num)中的System.out.println(num);并执行隐藏的return;
另3:进入死循环姿势:
在Zi()第一行添加this( 0 );
class Fu{}class Zi extends Fu{ Zi() { //super(); 默认的隐式语句。 System.out.println("Zi run"); } Zi(int num) { this(); System.out.println(num); }}
最后一个另
默认构造函数也不是啥也没干的
JAVA中所有的类都直接或间接继承于Object类
所以 class Demo //后面隐藏了 extends Object
class Demo{ /*默认的构造函数 Demo() { super(); return; } */}
绝对最后一个另:
Object就是真的没有父类了
阅读全文
0 0
- 继承——子类的实例化过程
- 继承—子父类的构造函数—子类的实例化过程
- java面向对象——继承最终章--子类的实例化过程(内存)
- 继承—子父类中的构造函数-子类的实例化过程
- 【继承】----子父类中的构造函数,子类的实例化过程
- 继承中子类实例化过程
- 子类的实例化过程
- 子类的实例化过程
- 子类的实例化过程
- 子类的实例化过程
- 子类的实例化过程
- 子类继承父类时实例化子类的执行顺序
- 子类继承父类时实例化子类的执行顺序
- java基础之继承extends,以及子类实例化过程
- JAVA基础-子类继承父类实例化对象过程
- 设计模式_继承_类中成员_覆盖_子类的实例化过程
- 子类实例化过程
- 子类对象的实例化过程
- Stacks
- Uboot 启动过程
- Java components图表描述
- C#静态调用C++Dll导出函数,并在C++Dll中回调C#函数
- Resultful 访问本地 sql Server
- 继承——子类的实例化过程
- awk和sed的常规用法
- C++ 模拟栈 stacks (数据结构实验)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- Android学习笔记14---进度条的实现
- URI和URL的区别
- Cisco交换机 SNMP配置
- 小写数字转换大写
- 2017网易合唱团