为什么传递的是Object类,我们比较的不是一个具体的它的子类嘛。
public boolean equals(Object obj) {
if (this == obj)//这条意思是本身的类也是Object类,且地址相同?
return true;
if (obj == null)
return false;
if (!(obj instanceof Course))//有了这个IF第一条if有啥用呢,只要这一个不就好了,只要他俩不是同一个类型就是False。
return false;
Course other = (Course) obj;//前面不是已经判断了这俩个类型相等,为什么还要强制转换
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
这样写比较通用,写父类,比较一切子类都没问题,如果只写String类,那么其他类不是不能比较了么
我的看法:首先地址相同肯定是true,其次在地址不相同的情况下,obj和Course类型不同,一定是false,最后,判断归判断,只有将obj强转为Course才能进行接下来的判断