先说结论:不需要
上代码
package com.wyz.test;
public class test extends A implements in{
public static void main(String[] args) {
test test = new test();
System.out.println(test.equal("12"));
}
// @Override
// public boolean equal(Object o) {
// if(o.equals("123")){
// return false;
// } else {
// return true;
// }
// }
}
interface in{
boolean equal(Object o);
}
class A implements in{
@Override
public boolean equal(Object o) {
if(o.equals("123")){
return false;
} else {
return true;
}
}
}
运行成功,结果为true
这解释了为什么实现Comparator接口时只需要实现其中的compare()方法而不需要实现equals()方法。因为Object实现了equals()方法并且是所有类的基类。
//Comparator.java
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}