java强制类型转换中的instanceof语句判断的原理和使用方法

一,instanceof的原理

java语言中对强制类型转换要求被转换的对象所属类型和即转新类型间存在直接或间接继承关系,或者说在同一科继承树上,不满足继承关系的类型间无法强转
参考强制类型转换的要求
所以SUN公司提供了instanceof关键字来判断两种类型是否在同一科继承树上,并返回布尔类型值。

二,语法结构

instanceof表达式语法结构:
引用对象 instanceof 新类型

三,代码背景

由于Object基类中的equals(Object obj)方法无法根据实例的某些属性,比如姓名,ID等主键元素判断对象是否相同,只能判断两个实例的堆区地址是否相同,所以 以下代码中的Star类重写了Object类中的equals方法

	class Star
	{
		int id ;
	//设置ID
		public void setId(int id)
		{
			this.id=id;
		}

//重写的equals方法
//由于形参中的Object类中没有ID属性,所以需要向下转型,进行强制类型转换

public boolean equals(Object obj)
{
		//instanceof判断
			if(***obj instanceof Star***) {
		//向下转型
				Star s=(Star)obj;
				if(this.id==s.id)
				{
	
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值