如何查看某个班级是否覆盖了另一个班级?
例如:Say bob
是一个Bot
覆盖抽象类的类Unit
.如何使以下评估为真?
bob.getClass() == Unit.class
Run Code Online (Sandbox Code Playgroud)
使用instanceof
运营商:
if(bob instanceof Unit) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
请注意,一旦您确定对象是使用的类的实例instanceof
,您可以安全地将其强制转换为该类,如下所示:
if(bob instanceof Unit) {
Unit bobUnit = (Unit) bob;
bobUnit.unitMethod();
}
Run Code Online (Sandbox Code Playgroud)
当调用只有子类(例如Unit
)具有定义的函数时,这可能是必要的.