gpt4 book ai didi

java - 存储两个同名变量的对象

转载 作者:行者123 更新时间:2023-12-01 23:40:31 28 4
gpt4 key购买 nike

在这段代码中,我只分配了一个对象,但以某种方式存储了 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());
}
}

最佳答案

一个x属于父类(super class),另一个属于子类。它们具有相同的名称这一事实并不重要,您可以通过使用类限定您的访问表达式来访问两者:

((Base)b).x
((Subclass)b).x

(请注意,第一行中的强制转换不是必需的;我将其放入是为了对称)

关于java - 存储两个同名变量的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18032103/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com