黑马程序员技术交流社区
标题:
关于一个继承问题?
[打印本页]
作者:
北极雪871208
时间:
2014-3-30 09:16
标题:
关于一个继承问题?
父类:
package test;
public class FatherClass {
public FatherClass() {
System.out.println("FatherClass Create");
}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("ChildClass Create");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果:
C:>java test.ChildClass
FatherClass Create
FatherClass Create 这里怎么打印两次父类的呢?!!
ChildClass Create
作者:
optimisticpig
时间:
2014-3-30 09:34
因为实例化子类对象时,系统会自动调用父类的无参构造函数,所以会多打印一次
作者:
执笔梦
时间:
2014-3-30 09:42
FatherClass fc = new FatherClass(); 在这会打印一次,
ChildClass cc = new ChildClass();
public ChildClass() {
super();//在创建子类对象的时候,会自动调用父类的无参构造函数.
System.out.println("ChildClass Create");
}
作者:
H-Deka
时间:
2014-3-30 09:52
子类对象在实例化时会默认调用父类的无参构造方法,之后再调用自己对应的构造方法,子类无参构造方法中第一句默认隐含了super()所以会打印两次,一次是创建父类时,一次是创建子类时
作者:
董振冬
时间:
2014-3-30 09:57
FatherClass fc = new FatherClass(); 这个不用说了吧!输出一遍 FatherClassCreate
ChildClass cc = new ChildClass(); 子类默认继承父类的无参构造函数,所以实现了父类的FatherClass方法,输出一遍 FatherClassCreate , 子类的无参构造函数,自己的方法肯定执行了。ChildClass Create 。所以输出了两次FatherClass Create
作者:
杨殿生
时间:
2014-3-30 20:32
子类继承父类后,如果创建子类对象则必然会调用父类的构造函数,即使自己不加系统也会自己生成一个无参数的父类构造函数,在父类构造函数执行后才会执行子类的构造函数,所以打印两次
作者:
lazy_xia
时间:
2014-3-31 14:30
你好! 你 实例化的时候首先会执行你父类构造函数要是有的话 其次是你实例化对象指向的那个构造函数 我是这么理解不知道啊能帮到你
作者:
孔丽阁
时间:
2014-3-31 15:05
调用子类的构造方法时,默认会执行下面这段代码:
public ChildClass() {
super();
//这个是默认的,一般省略不显示,但是一定会被执行,除非被显式声明。所以打印了父类的构造方法
System.out.println("ChildClass Create");
}
作者:
枫儿
时间:
2014-4-6 19:44
楼主你好,如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2