如何在java中比较基类的派生对象?
我有一个基类和两个派生自基类的类,即Derived1和Derived2,我想检查对象的类型是Derived1还是Derived2 这是我的代码:如何在java中比较基类的派生对象?,java,class,oop,polymorphism,Java,Class,Oop,Polymorphism,我有一个基类和两个派生自基类的类,即Derived1和Derived2,我想检查对象的类型是Derived1还是Derived2 这是我的代码: public class Base { int ID; } public class Derived1 extends Base { int subID; } public class Derived2 extends Base { int subID; } public class Program(){ publ
public class Base {
int ID;
}
public class Derived1 extends Base {
int subID;
}
public class Derived2 extends Base {
int subID;
}
public class Program(){
public static void main(String []args) {
Base object = new Derived1();
// I want to check whether "object" is of type Derived1 or Derived2
}
}
object.getClass()==Derived1.class
将返回true。与派生的对象实例1的一样
object.getClass().getName()
将返回“com.foo.Derived1”
<代码>Derived1=(Derived1)对象要么工作,要么抛出ClassCastException
这是您的主要3个选项。如果您试图根据对象的状态更改功能,您可能需要考虑让子类通过在基类中声明的抽象方法上使用
@覆盖来处理该功能。工作起来很有魅力!谢谢!顺便说一句,他们中有谁的效率比其他人高还是所有人的效率都一样?他们都是平等的。