如何查看一个类是否覆盖另一个类?
例如:说bob
是一个Bot
,一个覆盖抽象类的类Unit
。我怎样才能使以下评估为真?
bob.getClass() == Unit.class
使用instanceof
运算符:
if(bob instanceof Unit) {
// ...
}
请注意,一旦通过 using 确定一个对象是一个类的实例,instanceof
就可以像这样安全地将其强制转换为该类:
if(bob instanceof Unit) {
Unit bobUnit = (Unit) bob;
bobUnit.unitMethod();
}
当调用只有子类(例如Unit
)定义的函数时,这可能是必需的。
如果实现是
Bob implements Unit
然后
bob.getClass().getSuperclass()
将返回单位