黑马程序员技术交流社区
标题:
为什么子类实例化的时候要访问父类中的构造函数呢?
[打印本页]
作者:
焦明坤
时间:
2014-12-19 21:54
标题:
为什么子类实例化的时候要访问父类中的构造函数呢?
ExtendDemo.java
class Fu{
Fu(){
super();
show();
return;
}
void show(){
System. out.println("fu show" );
}
}
class Zi extends Fu{
int num = 8;
Zi(){
super();
return;
}
void show(){
System. out.println("zi show..." + num);
}
}
class ExtendDemo{
public static void main(String[] args){
Zi z = new Zi();
z.show();
}
}
这个程序的运行顺序是怎么走的???求解
作者:
lwj123
时间:
2014-12-19 22:13
因为子类在创建之后可能会用到父类的成员,所以在new 子类时会默认调用super,所以初始化子类时必须先对父类成员进行初始化
作者:
赵越海
时间:
2014-12-19 22:17
本帖最后由 赵越海 于 2016-7-8 17:32 编辑
.
作者:
kenhe
时间:
2014-12-19 22:20
因为子类要看看父类对成员属性做了些什么事
作者:
Honelyboy
时间:
2014-12-19 22:31
如图所示
1.png
(87.19 KB, 下载次数: 4)
下载附件
2014-12-19 22:30 上传
作者:
提米特
时间:
2014-12-19 22:54
子类继承父类,势必要从父类获取属性和方法。
而你创建子类对象时,需要调用子类的构造函数,而在子类的构造函数调用后,第一步就是默认访问父类的无参数的构造函数,如果没有空参数的构造函数,就必须手动使用super(参数)访问指定的带参数的构造函数。
做这个的目的是了解父类对属性做过哪些操作。避免遗漏信息。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2