为了账号安全,请及时绑定邮箱和手机立即绑定

看不懂Object的这个意思

看不懂Object的这个意思

qq_踏雪_5 2018-02-17 23:38:02
public boolean equals(Object obj) {//括号里是创建了一个obj的Object类 if(obj==null) return false; Animal temp=(Animal)obj;  //这里看不懂,(Animal)obj 为什么这么写? if(this.getName().equals(temp.getName())&&( this.getMonth()==temp.getMonth())); return true; else return false;
查看完整描述

1 回答

已采纳
?
慕慕1581088

TA贡献8条经验 获得超9个赞

这样可能抛异常ClassCastException 类型转换异常

强转前应该判断一下obj对象是不是Animal的类型的

public boolean equals(Object obj) {//括号里是创建了一个Object类型的引用  相当于

// Object obj = 传入的参数 // 自动类型提升 即父类引用指向子类对象 Object是所有类的父类

if(obj==null)

return false;

// 如果objj对象是Animal类型的

if(obj instanceof Animal)

    Animal temp=(Animal)obj;  // 将obj强转成Animal类型 向下转型 

    //因为这里要调用Animal类中的特有方法, 即getName(),getMonth(),

    // Object中无此方法,为了保证编译通过,只能将obj强转成Animal类型 向下转型 

if(this.getName().equals(temp.getName())&&( this.getMonth()==temp.getMonth()));

return true;

else

return false;


查看完整回答
1 反对 回复 2018-02-17
  • 1 回答
  • 0 关注
  • 1168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信