继承时候类的执行顺序问题

dodozhu 2007-06-19 07:56:25
:父类:
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();
}
}
输出结果:
FatherClass Create
FatherClass Create
ChildClass Create

为什么出现两个FatherClass Create结果,不是特别明白,如果有10个ChildClass继承了父类,那结果不是10个FatherClass Create 了??
...全文
512 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weihthchk 2007-06-19
  • 打赏
  • 举报
回复
子类的构造函数默认调用和这个构造函数参数一致的父类构造函数,除非在此子类构造函数的第一行显式调用父类的某个构造函数。
shuhang1106 2007-06-19
  • 打赏
  • 举报
回复
子类的构造方法的第一条语句就是调用父类的没有参数的构造方法,如果你没有写出这条语句java虚拟机就会默认的调用,如果你显示的写了这条语句,就一定要写在构造方法中的第一条语句,不然会报错

原理简述:只有在构造方法中调用了父类的构造方法才能继承父类的相关属性和方法,要不然子类从哪里继承父类的属性和方法,在实例化子类的时候又没有和父类有任何关系。
tdy1234 2007-06-19
  • 打赏
  • 举报
回复
子类继承父类会先初始化父类,调用父类的构造函数,
一九清风 2007-06-19
  • 打赏
  • 举报
回复
你将FatherClass fc = new FatherClass();去掉就是你想要的结果了,父类中无参的构造函数已被初始化
yonglr899 2007-06-19
  • 打赏
  • 举报
回复
FatherClass fc = new FatherClass();
输出 :
FatherClass Create

ChildClass cc = new ChildClass();
由于继承关系,先执行父类的构造函数,再执行自己的构造函数,输出 :
FatherClass Create
ChildClass Create
For_suzhen 2007-06-19
  • 打赏
  • 举报
回复
关于继承你还是看看java编程思想,说得很明白
6.2.1 初始化基础类
子类会去初始化基类的,也就是说会调用基类的构造函数,这个应该是无参的

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧