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