既然 contains方法的原理是遍历每一个元素equals(传入的值),equals比较的不就是两个对象的内容不管内存的起始位置相不相同。为何还需要重写 equals 方法 。比较的是 两者的内容 为何运行后 返回的 是false值。在重写的 方法中 this.name.equals.((Course) obj); 这里的 equals 是重写的还是没重写的?
equals比较的是两个对象是否相等,类似于(==)的作用,但是很多时候需要比较的是里面的内容而非地址,所以父类不能满足要求,所以要进行重写。
equals()方法的本意是比较两个对象的引用是否相同,也就是比较两个对象的地址,不是两个对象的内容。
个人看法,有不对的地方请指出:
1.没有重写equals之前,比较的是两个对象的地址,重写之后比较的是内容。
2.重写方法中用的是重写之后的equals