Uma interface pode estender várias interfaces em Java?

Uma interface pode estender várias interfaces em Java? Este código parece válido no meu IDE e compila:

interface Foo extends Runnable, Set, Comparator { } 

mas eu ouvi dizer que inheritance múltipla não era permitida em Java. Por que parece haver uma exceção para interfaces?

Sim, você pode fazer isso. Uma interface pode estender várias interfaces, conforme mostrado aqui:

 interface Maininterface extends inter1, inter2, inter3 { // methods } 

Uma única class também pode implementar várias interfaces. E se duas interfaces tiverem um método que define o mesmo nome e assinatura?

Há um ponto complicado:

 interface A { void test(); } interface B { void test(); } class C implements A, B { @Override public void test() { } } 

Em seguida, a implementação única funciona para ambos :).

Leia meu post completo aqui:

http://codeinventions.blogspot.com/2014/07/can-interface-extend-multiple.html

Uma interface pode estender várias interfaces .

Uma class pode implementar várias interfaces .

No entanto, uma class só pode estender uma única class .

Cuidado como você usa as palavras extends e implements quando se fala de interface e class .

Uma interface pode estender várias interfaces em java?

A resposta é: sim.

De acordo com o JLS

Uma interface pode ser declarada como sendo uma extensão direta de uma ou mais outras interfaces, significando que especifica implicitamente todos os tipos de membros, methods abstratos e constantes das interfaces que ele estende, exceto para quaisquer tipos de membros e constantes que possam ocultar.

Você pode estender várias Interfaces mas não pode estender várias classs .

A razão pela qual não é possível em Java estender várias classs, é a experiência ruim do C ++, onde isso é possível.

A alternativa para a inheritance de multipeças é que uma class pode implementar múltiplas interfaces (ou uma interface pode estender múltiplas interfaces)

Uma class Java só pode estender uma class pai. Herança múltipla não é permitida. Interfaces não são classs, no entanto, e uma interface pode estender mais de uma interface pai.

por exemplo, dê uma olhada aqui: http://www.tutorialspoint.com/java/java_interfaces.htm

Eu acho que a sua confusão está com inheritance múltipla, na qual é uma má prática fazê-lo e em Java isso também não é possível. No entanto, a implementação de várias interfaces é permitida em Java e também é segura.

    Intereting Posts