父类 子类问题?

奔跑吧前列腺 2008-09-19 10:14:31
public class FatherClass {
public FatherClass()
{
System.out.println("父类创建");
}

}

public class ChildClass extends FatherClass{
ChildClass()
{
System.out.println("子类创建");
}
public static void main(String[]args)
{
FatherClass fc=new FatherClass();
ChildClass cc=new ChildClass();
}

}
父类创建
父类创建
子类创建

怎么会有两个“父类创建”,实例化ChildClass()的时候,是不是又输出了一次“父类创建”,不是很明白,谁能解释一下,THX!
...全文
188 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuhs 2008-09-27
  • 打赏
  • 举报
回复
子类在构造的时候会默认调用父类的构造后再完成子类构造,建议楼主看看这方面的内容,无论是在编程还是考试中这种问题出的还是比较普遍的
gs840120 2008-09-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rypgood 的回复:]
ChildClass()
{
System.out.println("子类创建");
}

就等于

ChildClass()
{
super();
System.out.println("子类创建");
}

那个super();是默认的
[/Quote]


顶~~
zhang7512180 2008-09-27
  • 打赏
  • 举报
回复
public class FatherClass {
public FatherClass()
{
System.out.println("父类创建");
}

}

public class ChildClass extends FatherClass{
ChildClass()
{
System.out.println("子类创建");
}
public static void main(String[]args) //先从main方法开始执行
{
FatherClass fc=new FatherClass(); //创建一个父类对象->父类创建
ChildClass cc=new ChildClass(); //这里是创建一个子类对象cc,在创建CC的时候调用了父类的构造方法 FatherClass()->父类创建;然后在调用ChildClass()—>子类创建
}

}
父类创建
父类创建
子类创建
oyhj_nicholas 2008-09-27
  • 打赏
  • 举报
回复
只要创建子类的对象,这个子类的直接父类、间接父类的的构造方法都要执行,执行顺序从Object类的构造方法开始,直到这个子类构造方法。
ThinkingInJava110 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xieganlin 的回复:]
子类继承了父类。在创建一个子类对象时。
子类会自动去调用父类的构造函数.这也是继承的特点.
[/Quote]
先实例化父类,再实例化自类!
hai666wang 2008-09-26
  • 打赏
  • 举报
回复
子类创建对象的时候,父类会先创建,现有父亲再有儿子。
king_spf 2008-09-26
  • 打赏
  • 举报
回复
类的加载顺序是在静态块加载后,属性实例化前,加载父类。
rubysun2008 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ZangXT 的回复:]
是的,构造子类的对象的时候会调用父类的构造方法。
[/Quote]
对的
xiaozhuaizhuai 2008-09-26
  • 打赏
  • 举报
回复
调用子类的构造方法前会先调用父类的构造方法
shu672725 2008-09-26
  • 打赏
  • 举报
回复
大家说的都很对...看一下继承就明白了
zx273064010 2008-09-26
  • 打赏
  • 举报
回复
大家都解释清楚了,过来看看
lxw_happy 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ZangXT 的回复:]
子类的构造方法中会自动加入super();
[/Quote]
这个解释的很清楚了
loaferwang 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wensheng_zh2007 的回复:]
子类的构造函数在执行你写出来的语句,现默认调用super();所以。。。。。。
[/Quote]
就是这样说的,当使用子类时,父类的构造函数一样要加载一次的!
jsjlw 2008-09-26
  • 打赏
  • 举报
回复
大家都解释的很清楚了,我也不冒充高手了.
xieganlin 2008-09-26
  • 打赏
  • 举报
回复
子类继承了父类。在创建一个子类对象时。
子类会自动去调用父类的构造函数.这也是继承的特点.
wensheng_zh2007 2008-09-26
  • 打赏
  • 举报
回复
子类的构造函数在执行你写出来的语句,现默认调用super();所以。。。。。。
zy2419 2008-09-26
  • 打赏
  • 举报
回复
子类构造的时候先调用父类构造方法
yuyeyi 2008-09-26
  • 打赏
  • 举报
回复
下载个think in java看看里面有详细的解释
子类会自动调用父类的构造器
rypgood 2008-09-19
  • 打赏
  • 举报
回复
ChildClass()
{
System.out.println("子类创建");
}

就等于

ChildClass()
{
super();
System.out.println("子类创建");
}

那个super();是默认的
ZangXT 2008-09-19
  • 打赏
  • 举报
回复
子类的构造方法中会自动加入super();
加载更多回复(1)

62,614

社区成员

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

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