提问人:BlockManBlue 提问时间:4/6/2023 最后编辑:BlockManBlue 更新时间:4/6/2023 访问量:59
如何从超类访问子类变量?
How to access subclass variable from superclass?
问:
假设我有 2 个类,A 和 B.B 是 A 的子类,B 有一个特定于该类的变量,例如:
private class A{}
private class B extends A{int x = 5;}
我把 B 存储为 A,
A instB = new B();
如何在 B 中访问 x?在这个例子中,它是一个常量,但在我的程序中它不是,所以我需要某种方法来访问变量本身。
答:
0赞
Estefania MQ
4/6/2023
#1
如果确定类 instB 属于 A 类型,则 InstB 将无法访问类 B 的所有变量或方法。您必须将变量放在类 A 中或将 Object 初始化为类型 B。
2赞
Bruno
4/6/2023
#2
如果您确实需要将对象存储为“A”而不是“B”,那么我相信您唯一的答案是将“instB”转换回“B”以访问该成员。
int member = ((B)instB).x;
但是,如果您需要从超类访问子类成员,那么该软件设计的某些内容似乎就不对了。
评论
0赞
BlockManBlue
4/6/2023
这奏效了!谢谢!我之所以这样存储它,是因为它是一个具有各种子类的超类数组。这是为了一个游戏。
0赞
Bruno
4/6/2023
我很高兴它奏效了,祝你的项目好运!
评论