程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生ClassCastException异常。
语法:
myobject instanceof ExampleClass
myobject :某类对象引用
ExampleClass:某个类
instanceof操作的表达式返回值为布尔值,返回值是true,说明myobject 对象为ExampleClass的实例对象。反之,则不是。
注意: instanceof是java语言的关键字,在java语言中的关键字都为小写。
class Quadrangle{
public static void draw(Quadrangle q){
}
}
class Square extends Quandrangle{
}
class Anything{
}
public class Parallelogram extends Quandrangle{
public static void extends Quadrangle{
Quadrangle q=new Quadrangle();//实例化父类对象
//判断父类对象是否为Parallelogram子类的一个实例
if(q instanceof Parallelogram){
Parallelogram p=(Parallelogram)q;//进行向下转型操
}
//判断父类对象是否为Parallelogram子类的一个实例
if(q instanceof Square){
Square s=(Square)q;//进行向下转型操作
}
}
}