Как в Javadoc, так и в самом коде интерфейс Comparator определяет:
int compare(T o1, T o2);
boolean equals(Object obj);
Но тогда это не создает проблем при компиляции:
Comparator a = new Comparator() {
@Override public int compare(Object o1, Object o2) {
//..
}
};
Но это:
Comparator a = new Comparator() {
@Override public boolean equals(Object comparator) {
//..
}
};
Как это сделано для интерфейса, чтобы мы не могли переопределить метод?