* Это простой ответ, так как я новичок в Java *
Рассмотрим три класса X
, Y
и Z
.
Итак, мы наследуем как X extends Y, Z
И Y
, и Z
имеют метод alphabet()
с одинаковым типом возвращаемого значения и аргументами. Этот метод alphabet()
в Y
говорит отображать первый алфавит , а метод алфавита в Z
говорит отображает последний алфавит .
Таким образом, здесь возникает двусмысленность, когда alphabet()
вызывается X
. Говорит ли он для отображения первый или последний алфавит ???
Так что Java не поддерживает множественное наследование.
В случае интерфейсов, рассмотрим Y
и Z
в качестве интерфейсов. Таким образом, оба будут содержать объявление метода alphabet()
, но не определение. Он не скажет, отображать ли первый или последний алфавит или что-то еще, но просто объявит метод alphabet()
. Так что нет причин поднимать неопределенность. Мы можем определить метод с чем угодно внутри класса X
.
Таким образом, одним словом, определение интерфейсов выполняется после реализации, поэтому нет путаницы.