Day07 Java的instanceof和类型转换

instanceof详解

1.instanceof是Java保留关键字

2.instanceof的左边是对象,右边是类,当对象是右边类或其子类创建的对象时,返回true,否则返回false

3.说明,类的实例包含类本身的实例,以及所有直接或间接子类的实例

例1:Student2类和Teacher类继承People2类,而Student3继承Student2类,new一个Student2类的实例变量,把它赋给Object类型的对象,测试下面用例

 

 测试分析:

1.o instanceof Student2:true,o是Student2本身的实例化对象

2.o instanceof People2:true,o是People2的子类Student2的实例化对象

3.o instanceof Object:true,o是Object的子类(People2)的子类(Student2)的实例化对象

4.o instanceof Teacher:false,o不是Teacher类或其子类的实例化对象

5.o instanceof Student3:false,o不是Student3类或其子类的实例化对象

注意的是,这里在执行instance语句有两步:

1.编译,如果对象o本身类型(即object)与instanceof右边的类有继承关系,编译通过(如o instanceof String通过编译),否则编译报错

2.执行,我们这里o是Student2的实例化对象,如果o是instanceof右边类本身或其子类的实例化对象,返回true

前会先编译,若左右两边没有继承关系,则编译报错,如

 

这里String类和Studen2类没有任何关系,因此会报错,编译的适合就不通过了

强制类型转换

与数据类型时的类型转换相似

自动转换类型:低-->高,即子类-->父类,向上转型,但可能丢失子类自身的方法

强制转换类型:高-->低,即父类-->子类,向下转型

例2:Student2类继承People2类分别通过自动转换和强制性转换调用子类的方法

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值