一,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)
{