public class A {
public A(){
System.out.println("A created");
}
public static void main(String[] args) {
new B();
}
}
class B extends A{
public B(){
System.out.println("B created");
}
}
上述程序的输出将是
A created
B created
我无法理解如何调用构造函数A()。在B()中没有调用super。但仍然调用A()。
答案 0 :(得分:7)
当类B
扩展类A
时,它默认会调用构造函数A( )
。
这就是程序在A created
之前打印B created
的原因。
答案 1 :(得分:2)
在子类中,会自动调用super()
以确保正确构造对象。