instanceof关键字

instanceof关键字:

在这里插入图片描述

有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法,但是由于变量声明为父类的类型,导致编译时,只能调用父类中有的属性和方法,无法调用子类中特有的属性和方法。

但是我们又想调用子类特有的属性和方法,怎么办?

我们可以使用强制转换

Man m1=(Man)p2;

我们开发中的用的多的是向上转型(多态),向下转型用的很少

在这里插入图片描述

注意:当我们使用强制转换时可能出现异常classcastexception 翻译过来就是类强制转换异常,有点像基本数据类型强制转换时候的情况,基本数据类型强制转换可能会有精度损失。

那么问题来了:如何才能没有异常呢?那就是使用instanceof关键字进行判断:if(a instanceof A){ } 如果‘a’是A的实例,则…

如果(a instanceof A)返回值是true,B是A的父类,那么(a instanceof B)也必定是true

在这里插入图片描述

总结:不相关的两个类,不可能强转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值