package com.itheima.demo19instanceof;
import com.itheima.demo17duotai.Animal;
import com.itheima.demo17duotai.Cat;
import com.itheima.demo17duotai.Dog;
import java.util.Random;
/*
instanceof关键字
ClassCastException: com.itheima.demo17duotai.Fu cannot be cast to com.itheima.demo17duotai.Zi
作用:判断某个对象是否属于某种数据类型
向下转型的时候容易引发ClassCastException类型转换异常,可以在向下转型之前,先进行判断,是对应的类型,在向下转型
格式:
boolean b = 对象名 instanceof 数据类型;
true: 对象是对应的数据类型
false: 对象不是对应的数据类型
注意:
要判断的对象和数据类型之间必须有继承或者实现关系
*/
public class Demo01 {
public static void main(String[] args) {
Animal a = new Cat();
boolean b1 = a instanceof Cat;
System.out.println("b1:"+b1);//b1:true
boolean b2 = a instanceof Dog;
System.out.println("b2:"+b2);//b2:false
//在向下转型之前,就可以增加一个判断:是对应的类型在强转
if(a instanceof Cat){
Cat c = (Cat)a;
c.eat();
c.sleep();
c.catchMouse();
}
if(a instanceof Dog){
Dog d = (Dog)a;
d.eat();
d.sleep();
d.lookHome();
}
//要判断的对象和数据类型之间必须有继承或者实现关系
Random r = new Random();
//boolean b3 = r instanceof Cat;//编译报错 Random和Cat没有继承和实现关系
}
}
instanceof关键字
最新推荐文章于 2024-07-13 13:55:40 发布