instanceof关键字

在这里插入图片描述

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没有继承和实现关系
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭子在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值