用Java检查实例的类

Tod*_*ies 1 java oop

如何查看某个班级是否覆盖了另一个班级?

例如:Say bob是一个Bot覆盖抽象类的类Unit.如何使以下评估为真?

bob.getClass() == Unit.class
Run Code Online (Sandbox Code Playgroud)

Phi*_*l K 7

使用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)具有定义的函数时,这可能是必要的.