快捷导航

看不懂Object的这个意思

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

这样可能抛异常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;
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP