如何查看班级是否覆盖其他班级?
例如:假设bob
是Bot
,这是一个覆盖抽象类Unit
的类。如何使以下评估为真?
bob.getClass() == Unit.class
答案 0 :(得分:7)
使用instanceof
运算符:
if(bob instanceof Unit) {
// ...
}
请注意,一旦您确定某个对象是使用instanceof
的类的实例,您就可以安全地将其强制转换为该类:
if(bob instanceof Unit) {
Unit bobUnit = (Unit) bob;
bobUnit.unitMethod();
}
当调用只有子类(例如Unit
)具有定义的函数时,这可能是必要的。
答案 1 :(得分:1)
如果实施
Bob implements Unit
然后
bob.getClass().getSuperclass()
将返回Unit