java可以解释输出是如何变成这样的?
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。但是仍然调用了一个()
# 1 楼答案
当类
B
扩展类A
时,默认情况下它将调用构造函数A( )
这就是程序在
B created
之前打印A created
的原因# 2 楼答案
在子类中,
super()
被自动隐式调用,以确保对象被正确构造