可以解释输出是如何像这样的?
问题描述:
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()是如何invoked.There不称为B()超级。但仍然调用A()。
答
当B
类扩展类A
时,它将默认调用构造函数A()
。
这就是为什么程序在B created
之前打印A created
的原因。
答
在子类中,super()
会自动调用以确保对象的构造正确。