Может ли интерфейс расширить несколько интерфейсов в Java?
может ли интерфейс расширить несколько интерфейсов в Java? Этот код выглядит допустимым в моей среде IDE и компилируется:
interface Foo extends Runnable, Set, Comparator<String> { }
но я слышал, что множественное наследование не допускается в Java. Почему возникает исключение для интерфейсов?
6 ответов:
Да, вы можете сделать это. Интерфейс может расширить несколько интерфейсов, как показано здесь:
interface Maininterface extends inter1, inter2, inter3 { // methods }один класс может реализовывать несколько интерфейсов. Что делать, если два интерфейса имеют метод, определяющий одно и то же имя и подпись?
есть хитрый момент:
interface A { void test(); } interface B { void test(); } class C implements A, B { @Override public void test() { } }тогда одна реализация работает для обоих :).
Читайте мой полный пост здесь:
http://codeinventions.blogspot.com/2014/07/can-interface-extend-multiple.html
An интерфейс можете расширить несколько интерфейсов.
A класс можете реализовывать несколько интерфейсов.
однако, a класс только расширить один класс.
осторожны, как вы используете слова
extendsиimplementsкогда речь идет оinterfaceиclass.
может ли интерфейс расширить несколько интерфейсов в java?
ответ: да.
по данным JLS
интерфейс может быть объявлен прямым расширением одного или нескольких другие интерфейсы, что означает, что он неявно указывает все члены типы, абстрактные методы и константы интерфейсов, которые он расширяет, за исключением любых типов и констант, которые он может прятаться.
Вы можете расширить несколько
Interfacesно вы не можете расширить несколькоclasses.причиной того, что в Java невозможно расширить несколько классов, является плохой опыт работы с C++, где это возможно.
альтернативой наследования multipe является то, что класс может реализовать несколько интерфейсов (или интерфейс может расширять несколько интерфейсов)
класс Java может расширять только один родительский класс. Множественное наследование не допускается. Однако интерфейсы не являются классами, и интерфейс может расширять несколько родительских интерфейсов.
например, посмотрите здесь:http://www.tutorialspoint.com/java/java_interfaces.htm
Я думаю, что ваша путаница заключается в множественном наследовании, в котором это плохо практикуется, и в Java это также невозможно. Однако реализация нескольких интерфейсов разрешено в Java, и это также безопасно.
Comments