Способы по умолчанию - отличный новый инструмент в нашем инструменте Java. Однако я попытался написать интерфейс, который определяет версию default метода toString. Java говорит мне, что это запрещено, поскольку методы, объявленные в java.lang.Object, могут не быть default ed. Почему это так?
Я знаю, что правило "базовый класс всегда выигрывает", поэтому по умолчанию (кадр;) любая реализация default метода Object в любом случае будет перезаписана методом от Object. Однако я не вижу причин, по которым не должно быть исключения для методов из Object в спецификации. Особенно для toString может быть очень полезно иметь реализацию по умолчанию.
Итак, в чем причина, почему разработчики Java решили не разрешать методы default переопределять методы из Object?