Java中instanceof的解析

instanceof含义

例:a instanceof A,为判断左边的a是否是右边A的实例,如果a是A的实例,那么返回true,否者返回false,这个判断主要是为了防止a强转为A时报错。

举例

//父类
class Person{
}
//继承了Person类
class Man extends Person{
}
//继承了Person类
class Woman extends Person{
}

public class Test{
	public static void main(String[] args){
		//此处p1只能访问Person中的方法
		//如果该方法被子类Man重写了,那么访问的就是Man中方法,无法访问Man中特有的方法
		//但是p1中加载了Man中特有的方法,只是当前情况无法访问
		Person p1 = new Man();//这个是多态,也称向上转型
		
		//如果p1想要访问Man中特有的方法,就需要向下转型
		//使用强转符进行向下转型
		//可是直接转型可能会报错,
		//例如Woman woman = (Woman)p1;会报错,因为p1中并没有加载有关Woman有关的方法
		//为了防止转换出错,就使用instanceof来判断,左边是否是右边的实例,如果是,返回true,不是就返回false
		if(p1 instanceof Man){
			Man man = (Man)p1//也称向下转型
		}
	}
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值