Java,实例是子类而不是超类

时间:2014-10-25 04:29:41

标签: java

我知道如果我不得不问这个问题,我的设计程序设计很差。如何确保对象是子类类型而不是子类的父类?

例如:

if (r instanceof subclassRobot) {
  //method
}

如果r是父母,我不希望执行此操作。如果r是子类类型,我只希望执行此方法。

3 个答案:

答案 0 :(得分:4)

您可以像这样检查班级:

if(thing instanceof SomeClass.class && !thing.getClass().equals(SomeClass.class))
{
    // Thing can be any class that extends SomeClass,
    // but will not belong to SomeClass itself.
}

答案 1 :(得分:0)

r.getClass().equals(subClass.class)

答案 2 :(得分:0)

绝对精美的代码。

您的p是对属于基类族的类族的引用。 O操作。

if (r instanceof subclassRobot) {
    //...
}

可以检查您是否实际指向subclassRobot

的实例