黑马程序员技术交流社区
标题:
构造函数
[打印本页]
作者:
treecolor166
时间:
2014-1-7 14:18
标题:
构造函数
本帖最后由 treecolor166 于 2014-1-9 22:01 编辑
为什么子类继承了父类,在创建子类对象的时候会先执行父类的构造器
作者:
嘿╰_╯往哪里跑
时间:
2014-1-7 14:23
子类实例化生成对象时,把这个类加载到JVM上,会先生成类的实例,但是new关键字有一个特殊的性质就是会先调用类的无参构造方法,如果这个类继承了父类,则子类实例化时,会先调用父类的无参构造方法,是类的一个初始化的顺序问题
作者:
猎鹰tianya
时间:
2014-1-7 14:39
个人理解是这样的:创建一个对象的时候初始化是必须要做的一件事。
因为子类对象继承了父类的属性和方法,所以要先对这些属性和方法进行初始化
这时就会调用父类的构造方法先进行一次初始化,然后子类自己再进行初始化!
------------我承认,理论的东西,我将不太清楚{:soso_e135:}---------------------------
作者:
黄晓鑫
时间:
2014-1-7 14:52
因为子类对象中的构造方法里面有一个隐式的super()
作者:
范晓冲
时间:
2014-1-7 17:45
子类继承父类,首先应该完成父类的构造函数,因为有可能后面会用到或者修改父类的一些资源,因此得先初始化父类
class Person{
private String name;
public Person(String name){
this.name=name;
}
}
public class Teacher extends Person{
private int age;
public Teacher(String name,int age){
super(); //等价与 this.name=name;
this.age=age;
}
public void speak(){
System.out.println(" 我要进云八!");
}
public static void main(String[] args){
Teacher t=new Teacher("zhangSann",23);
t.speak();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2