class A { public A(){ System.out.println("A构造"); } public static class B { public B(){ System.out.println("B构造"); } } }public class C extends A.B{ public C(A a){ System.out.println("C构造"); } public static void main(String[] aa){ A a=new A(); new C(a); } }结果是什么
class A { public A(){ System.out.println("A构造"); } public static class B { public B(){ System.out.println("B构造"); } } }public class C extends A.B{ public C(){ System.out.println("C构造"); } public static void main(String[] aa){ new C(); } } 结果是什么
class A { public A(){ System.out.println("A构造"); } public static class B { public B(){ System.out.println("B构造"); } } }public class C extends A.B{ public C(){ A.super(); System.out.println("C构造"); } public static void main(String[] aa){ new C(); } } 结果是什么
结果是:
A构造
B构造
C构造
你猜错了。
因为个人认为基础不好所以正在重头看think in java呢。
不过你的这个问题,我确实不知道。
我只看到a.super()觉得有问题就说了。
B构造
C构造
================
如果总是一切依靠编译器,就根本写不出上述这么精简的例子.这个实例要基本功才行呀从语法来讲,我想很多人和我一样不明白a.super()这个方法是干什么用的,我想这个也不重要重要的是:
C在构造自己的时候用a 对象作为参数,而这个时候B 和A 都要构造一下.完后,如果实例,那么C再构造一下.看起来这个程序没有问题>
请问答案是什么??
A构造
B构造
C构造a.super();是必须的,从内部类继承的子类的构造方法必须这样调用父类的封装类
不过楼主出的这道题很经典,打算出书?俺买哦~~~~~~~~基础是不太牢,需要补补。
public A(){
System.out.println("A构造");
} public static class B {
public B(){
System.out.println("B构造");
}
}
}public class C extends A.B{
public C(A a){
System.out.println("C构造");
} public static void main(String[] aa){
A a=new A();
new C(a);
}
}结果是什么
public A(){
System.out.println("A构造");
} public static class B {
public B(){
System.out.println("B构造");
}
}
}public class C extends A.B{
public C(){
System.out.println("C构造");
} public static void main(String[] aa){
new C();
}
}
结果是什么
public A(){
System.out.println("A构造");
} public static class B {
public B(){
System.out.println("B构造");
}
}
}public class C extends A.B{
public C(){
A.super();
System.out.println("C构造");
} public static void main(String[] aa){
new C();
}
}
结果是什么