Java继承: How can you find which subclass an object belongs to?

标签 java inheritance

我不太确定如何在标题中表达它,但这是用例。

我有一个类(class)测试。测试有一个名为 Letter 的属性,如下所示

public class Test() {
    Letter x;
}

字母可以是多个子类之一。

class A()
class B()
class C()

现在假设在一个类(我们称之为驱动程序)中,我有一个 Test 实例。我想弄清楚这个 Test 的字母是否是 A、B、C 等,以便我可以访问子类特有的属性。请参阅:

public class Driver() {
    Test t;
}

如果我使用 t.getClass(),我会得到 Class.Test,还是会得到子类(例如 Class.A)? Driver类有可能知道x的子类吗?

是否可以创建如下方法:

public Class getSubclassFromLetter(Letter x) {
    // Find subclass from the letter
}

最佳答案

您可以使用instanceof。这样做并不是一个好的做法,但您可以执行以下操作:

if (x instanceof A) {
    //TODO whatever related to A
}

关于Java继承: How can you find which subclass an object belongs to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42986366/

相关文章:

java - Maven 停留在旧版本的系统依赖

java - 检查二叉搜索树是否退化

java.lang.可抛出的 : addInArray in RecyclerView

c# - 是否可以从基础对象的列表中访问子对象属性?

javascript - 对象没有在 javascript 中调用子类函数

具有专有基类的 C++ 多重继承

java - 为什么我不能有私有(private)抽象方法?

java - 有没有办法验证在使用 JUnit 时是否在测试方法中调用了 try/catch 指令的 Catch 部分?

javascript - 文本框不接受+号

delphi - 使用继承的对象列表