黑马程序员技术交流社区
标题:
继承时子类成员变量初始化
[打印本页]
作者:
陈cc
时间:
2015-8-17 23:18
标题:
继承时子类成员变量初始化
class Fu{
Fu(){
//super();
//调用的是子类的show方法,此时其成员变量num还未进行显示初始化
show();
return;
}
void show(){
System.out.println("fu show");
}
}
class Zi extends Fu{
int num = 8;
Zi(){
//super();
//通过super初始化父类内容时,子类的成员变量并未显示初始化,每super()父类初始化完毕后,才进行子类的成员变量显示初始化
return;
}
void show(){
System.out.println("zi show" + num);
}
}
class ExtendsDemo2
{
public static void main(String[] args){
Zi z = new Zi();
z.show();
//Fu f = new Zi();
}
}
请问当初始化父类时,子类并未初始化,那么int num,应该不存在的吧,怎么会输出zi show0呢?
作者:
zmhlnrs
时间:
2015-8-18 17:11
初始化ExtendsDemo2这个类的时候自动加载子类
作者:
sunsteam
时间:
2015-8-18 21:37
变量优先于构造代码块和构造函数出现 静态代码块>静态变量>成员变量>构造代码块>构造函数 父类初始化完一部分会先处理子类的对应部分 再初始化父类下一个类型
作者:
蓬头小道士
时间:
2015-8-18 22:07
不应该这样说,既然没有初始化子类,父类是完全没作用的。
作者:
龙哥Longer
时间:
2015-8-18 23:29
学习了,谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2