在这段代码中,我只分配了一个对象,但以某种方式我存储了 x 的 2 个副本(一个用于基类,一个用于子类)。如果对象只有一个,这怎么可能?存储两个 x 变量的空间在哪里?这是否意味着实际上创建了两个对象?
class App {
class Base {
public int x;
public Base() {
x = 2;
}
int method() {
return x;
}
}
class Subclass extends Base {
public int x;
public Subclass() {
x = 3;
}
int method() {
return x;
}
}
public static void main(String[] args) {
new App().run();
}
public void run() {
Base b = new Subclass();
System.out.println(b.x);
System.out.println(b.method());
}
}