为什么当我在 main() 中创建子类时,超类的构造函数会自动执行?
Why does the constructor of a superclass automatically execute when i create a subclass in main()?
我并没有真正在任何地方使用 super()
,但仍然调用了超类的构造函数。为什么会这样?
class SuperDemo{
public static void main(String[] args) {
B subClass = new B();
subClass.showbiz();
}
}
class A{
int i;
A(){
i = 10;
}
}
class B extends A{
void showbiz(){
System.out.println("i in subclass " + i);
}
}
这就是语言的工作原理。如果您不使用 super
显式调用超类的构造函数,将隐式调用超类的默认构造函数。
我并没有真正在任何地方使用 super()
,但仍然调用了超类的构造函数。为什么会这样?
class SuperDemo{
public static void main(String[] args) {
B subClass = new B();
subClass.showbiz();
}
}
class A{
int i;
A(){
i = 10;
}
}
class B extends A{
void showbiz(){
System.out.println("i in subclass " + i);
}
}
这就是语言的工作原理。如果您不使用 super
显式调用超类的构造函数,将隐式调用超类的默认构造函数。