Ответ 1
Нет. Классы с реализациями всегда выигрывают по умолчанию, поэтому использование hashCode
или equals
по умолчанию никогда не может быть вызвано и, следовательно, запрещено.
public interface Table<T> {
@Overrride
default boolean equals(Object other) {
//do something and return true/false
}
}
Почему у вышеуказанного кода есть ошибка компиляции "java: метод по умолчанию равен в интерфейсе Table переопределяет член java.lang.Object"? Можем ли мы переопределить метод hashCode и equals с использованием метода по умолчанию по умолчанию, предположительно, у меня есть методы в одном интерфейсе для определения равенства объекта, реализующего этот интерфейс?
Нет. Классы с реализациями всегда выигрывают по умолчанию, поэтому использование hashCode
или equals
по умолчанию никогда не может быть вызвано и, следовательно, запрещено.