请看下面的代码:
class A {
private int b;
A(){
b=5;
}
}
class B extends A {
}
class C {
public static void main(String args[]){
B b=new B();
}
}
当我创建 B 的实例时,B 的默认构造函数调用 A 的构造函数,该构造函数为实例变量 b 赋值。 我的查询是因为实例变量与类的实例相关联,而我们还没有创建类 A 的任何实例,这个赋值(b=5)到底是什么意思?另外,当没有 A 的实例时,调用 A 的构造函数究竟意味着什么?
最佳答案
B extends A
表示 B
的一个实例也是 A
的一个实例,就像一个狗也是一种动物。它同时存在,所以 b=5
是完全正常的,因为 B
也是 A
初始化 A
中的 b
字段。
关于java - 如何在没有任何关联实例的情况下调用构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240417/