有个A类 public class A{
public A(){
System.out.println("A");
}
}
有个S类继承了A类 class S extends A{
public S(){
System.out.println("S");
A a=new A();
}
}最后有个测试类Test public class Test{
public Test(){
System.out.println("Test");
}
public static void main(String[] a){
S b=new S();
}
}最后的运行结果 是 A S A 请高手解释下 最后个A是怎么来的?
第1个A 是不是在加载S类的时候先 执行A a=new A();再把A类也加载,接着就输出了 第1个A
加载完之后再运行S类中的输出语句 S,但最后个A 是怎么来的???
public A(){
System.out.println("A");
}
}
有个S类继承了A类 class S extends A{
public S(){
System.out.println("S");
A a=new A();
}
}最后有个测试类Test public class Test{
public Test(){
System.out.println("Test");
}
public static void main(String[] a){
S b=new S();
}
}最后的运行结果 是 A S A 请高手解释下 最后个A是怎么来的?
第1个A 是不是在加载S类的时候先 执行A a=new A();再把A类也加载,接着就输出了 第1个A
加载完之后再运行S类中的输出语句 S,但最后个A 是怎么来的???
class A { public A() {
System.out.println("A"); //第一个A
}
}class S extends A { public S() {
System.out.println("S"); //输出S
A a = new A(); //输出A , 这是第二个
}
}class Test { public Test() {
System.out.println("Test");
} public static void main(String[] a) {
S b = new S();
}
}
public A(){
System.out.println("父类构造方法");
System.out.println("A");
}
}
class S extends A{
public S(){
System.out.println("子类构造方法");
System.out.println("S");
A a=new A();
}
}
public class Test{
public Test(){
System.out.println("Test");
}
public static void main(String[] a){
S b=new S();
}
}
这样改一下楼主就应该了解构造方法的调用过程