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