Java 另一道构造器与构造器重载的题目
题目:
请写出以下程序的输出结果
public class ConstructorTest2 { public static void main(String[] args) { new B("test"); } } class B extends A { public B(String s) { System.out.println(s); } public B(String s1, String s2) { this(s1 + s2 + "3"); } public B() { this("4"); } } class A { public A(String s) { System.out.println(s); } public A(String s1, String s2) { this(s1 + s2); } public A() { this("1", "2"); } }
输出结果为:
12
test
调用B(String s)的构造器时,隐含调用了super(),然后到了A()中继续调用A(String s1, String s2)再到A(String s),之后回到了B(String s)。
因此构造器调用this构造器的时候并不会调用子类的任何构造器。
本文出自 无忧之路 - 博客园