Интерфейс расширяет 2 класса [дубликат]

108
задан nbro 29 April 2015 в 12:28
поделиться

7 ответов

Да, вы можете это сделать. Интерфейс может расширять несколько интерфейсов, как показано ниже:

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

143
ответ дан GurV 19 August 2018 в 00:26
поделиться
  • 1
    @RahulBhadana Аннотация метод должен переопределить право? – ꜱᴜʀᴇꜱʜ ᴀᴛᴛᴀ 28 July 2014 в 09:02
  • 2
    Что делать, если у вас есть интерфейс A с void test() и интерфейсом B с boolean test()? (Является ли это двоюродным братом проблемы алмаза ?) __Пробовал это, и разумная вещь случается: не допускается, если тип возврата отличается. – Daniel 6 January 2015 в 18:38
  • 3
    @sureshatta - так что происходит? вызывает ? – Fattie 8 December 2016 в 15:51
  • 4
    Класс не позволяет использовать 2 метода одной и той же сигнатуры с другим типом возвращаемого значения. [Д0] stackoverflow.com/questions/16149285/… – Ninh Pham 26 March 2017 в 11:59

Вы можете расширить несколько Interfaces, но вы не можете расширять несколько classes.

Причина, по которой в Java невозможно расширить несколько классов, - это плохой опыт от C ++, где это возможно .

Альтернативой для наследования multipe является то, что класс может реализовывать несколько интерфейсов (или интерфейс может расширять несколько интерфейсов)

3
ответ дан AlexWien 19 August 2018 в 00:26
поделиться

Интерфейс может расширять несколько интерфейсов.

Класс может реализовывать несколько интерфейсов.

Однако класс может расширять только один класс.

Осторожно, как вы используете слова extends и implements, когда говорите о interface и class.

63
ответ дан But I'm Not A Wrapper Class 19 August 2018 в 00:26
поделиться
  • 1
    Отличный короткий ответ, который объясняет все ... – Kushal 19 December 2016 в 07:56

Я думаю, что ваше замешательство заключается в множественном наследовании, в котором это плохой практике, и в Java это тоже невозможно. Тем не менее, реализация нескольких интерфейсов разрешена на Java, и это также безопасно.

1
ответ дан Cem Sultan 19 August 2018 в 00:26
поделиться

Класс Java может распространять только один родительский класс. Множественное наследование не допускается. Однако интерфейсы не являются классами, и интерфейс может распространять более одного родительского интерфейса.

, например, посмотрите здесь: http://www.tutorialspoint.com/ Java / java_interfaces.htm

2
ответ дан Hoang Ong 19 August 2018 в 00:26
поделиться

Может ли интерфейс расширять несколько интерфейсов в java?

Ответ: Да.

Согласно JLS

Интерфейс может быть объявлен прямым расширением одного или нескольких других интерфейсов, что означает, что он неявно задает все типы членов, абстрактные методы и константы интерфейсов, которые он расширяет, за исключением любого члена типы и константы, которые он может скрывать.

7
ответ дан Masudul 19 August 2018 в 00:26
поделиться
  • 1
    JLS = "Спецификация языка Java" который является авторитетным источником в этих вопросах. – Hontvári Levente 10 May 2015 в 07:13
2
ответ дан shankar Dayal upadhyay 30 October 2018 в 12:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: