JAVA程序疑惑(我刚学,不懂)

来源:百度知道 编辑:UC知道 时间:2024/06/06 07:20:27
class Father{
int x;
Father(){
x=3;
System.out.println("Calling Father:x="+x);
}
void doSomething(){
System.out.println("Calling Father.doSomething()");
}
}
class Son extends Father{
int x;
Son(){
super();
x=5;
System.out.println("Calling Son:x="+x);
}
void doSomething(){
super.doSomething();
System.out.println("Calling Son.doSomething()");
System.out.println("Father.x="+super.x+ " Son.x="+x);
}
}
public class Sd{
public static void main(String []args){
Son f=new Son();
f.doSomething();}
}
为什么不是显示
Calling Father:3
Calling Father.doSomething()
Calling Son:5
Calling Father.doSomething()
Calling Son.doSomething()
Father.x=3 Son.x=5
????????????????????????????????????????????????
我的意思是Son(){
super();
x=5;
System.out.println("Cal

在子类的构造方法中第一句必须是直接父类的构造方法(你没写的话有默认),而调用父类的构造方法为super(参数列表)。
如你这里super()调用父类中无参数的构造方法,不会调用其它成员方法。

去找下java创建对象顺序~

这种东西记住就可以了~

想深究基本没用!要不知道,要不不知道,不要做半吊子,浪费时间浪费青春!

你重写了父类的doSomething()方法

你想想看 没有父亲哪来的儿子?