Java 使用 instanceof 操作符判断对象类型

当程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生 ClassCastExcepion异常,所以在执行向下转型之前需要判断父类对象是否为子类对象的实例。

myobject instanceof ExampleClass

例子

class Quadrangle{   //四边形类
    public static void draw(Quadrangle q) {//四边形类方法
        //SomeSentence
    }
}
class Square extends Quadrangle{
    //SomeSentence
}
class Anything{
    //SomeSentence
}
public class Parallelogram extends Quadrangle {//平行四边形类
    public static void main(String[] args) {
       Quadrangle q = new Parallelogram();
       //判断父类对象是否为 Parallelogram 子类的一个实例
       if (q instanceof Parallelogram){
            Parallelogram p = (Parallelogram)q;//向下转型操作
       }
       //判断父类对象是否为 Square 子类的一个实例
       if (q instanceof Square) {
            Square s = (Square)q;
       }
       
    }
}

你可能感兴趣的:(java)