java 如何从超类访问子类变量?

ukqbszuj  于 2023-04-10  发布在  Java
关注(0)|答案(2)|浏览(116)

假设我有两个类,A和B。B是A的子类,B有一个特定于该类的变量,例如:

private class A{}
private class B extends A{int x = 5;}

我把B存储为A

A instB = new B();

在这个例子中它是一个常量,但在我的程序中它不是,所以我需要一些方法来访问变量本身。

v7pvogib

v7pvogib1#

如果你真的需要将对象存储为'A'而不是'B',那么我相信你唯一的答案就是将'instB'转换为'B',以便访问该成员。

int member = ((B)instB).x;

但是,如果您需要从超类访问子类成员,那么这种软件设计似乎有些不对劲。

kqlmhetl

kqlmhetl2#

如果你确定你的类instB是A类型,InstB将不能访问B类的所有变量或方法。你将不得不把变量放在A类中,或者将你的Object初始化为B类型。

相关问题