В Java что является преимуществом расширения интерфейса - PullRequest
1 голос
/ 18 марта 2010

например:

SortedSet EXTENDS Set
NavigableSet EXTENDS SortedSet

является ли выгода, наконец, полученная на самом нижнем уровне (тот, который фактически реализует) ?. В приведенном выше случае это будет TreeSet

Было бы справедливо сказать, что если какой-то класс расширяет интерфейс, то этот класс ДОЛЖЕН / ДОЛЖЕН быть интерфейсом?

Ответы [ 2 ]

7 голосов
/ 18 марта 2010

Да, только интерфейсы могут расширять другие интерфейсы. Классы реализуют интерфейсы, но не расширяют их.

Назначение интерфейса, расширяющего другой интерфейс, - показать, что SortedSet является расширением интерфейса Set. SortedSet - это Set, с дополнительными операциями.

2 голосов
/ 18 марта 2010

является ли в конечном итоге выгода на самом нижнем уровне (который фактически реализуется)?

Преимущество такое же, как и для интерфейсов в целом: указание контракта. Иерархии интерфейсов, в основном, просто экономят время при наборе текста и предотвращают непреднамеренные несоответствия: SortedSet не нужно повторять методы в Set, и нет риска получить такую ​​же функциональность в слегка отличающихся методах.

Было бы справедливо сказать, что если какой-то класс расширяет интерфейс, то этот класс ДОЛЖЕН / ДОЛЖЕН быть интерфейсом?

ДОЛЖЕН быть верным. Классы не могут расширять интерфейсы, только реализовать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...