1

如何查看一个类是否覆盖另一个类?

例如:说bob是一个Bot,一个覆盖抽象类的类Unit。我怎样才能使以下评估为真?

bob.getClass() == Unit.class
4

2 回答 2

7

使用instanceof运算符:

if(bob instanceof Unit) {
    // ...
}

请注意,一旦通过 using 确定一个对象是一个类的实例,instanceof就可以像这样安全地将其强制转换为该类:

if(bob instanceof Unit) {
    Unit bobUnit = (Unit) bob;
    bobUnit.unitMethod();
}

当调用只有子类(例如Unit)定义的函数时,这可能是必需的。

于 2012-12-02T20:20:48.013 回答
1

如果实现是

Bob implements Unit 

然后

bob.getClass().getSuperclass() 

将返回单位

于 2012-12-02T20:36:14.303 回答