幕布斯9297580
2018-08-30 14:10
重写equals( )方法时,
if (getClass() != obj.getClass())
return false;
执行完后,已经保证了原有对象和传入对象obj的类型相同,
为什么后面仍要执行
Dog other = (Dog) obj;
将传入对象obj转化为原有对象的Dog类型?
不可以这样写吗?如下:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
if (age != obj.age)
return false;
return true;
}
Object类是所有类的父类,跟Dog类不是同一类型的。需要向下转型成Dog类,这样才能比较。
Java入门第二季 升级版
530646 学习 · 6091 问题
相似问题