Middle
303
Como pode implementar herança múltipla em Java?
Resposta da IA
sobes.tech IA
A herança múltipla de implementação de classes em Java não é suportada diretamente devido ao "problema do diamante". No entanto, a sua funcionalidade pode ser alcançada pelos seguintes métodos:
-
Interfaces: A classe pode implementar múltiplas interfaces. As interfaces definem apenas as assinaturas dos métodos, não a sua implementação.
interface InterfaceA { void methodA(); } interface InterfaceB { void methodB(); } class MyClass implements InterfaceA, InterfaceB { @Override public void methodA() { // Implementação de methodA } @Override public void methodB() { // Implementação de methodB } }Com o aparecimento de métodos default em Java 8, as interfaces também podem fornecer implementações padrão.
interface InterfaceC { default void defaultMethod() { System.out.println("Implementação padrão"); } } class MyClass2 implements InterfaceC { // Pode usar defaultMethod ou sobrescrevê-lo } -
Composição: Em vez de herdar de várias classes, uma classe pode conter instâncias de outras classes (membros).
class ComponentA { void methodA() { // Implementação de methodA } } class ComponentB { void methodB() { // Implementação de methodB } } class MyClass3 { private ComponentA compA = new ComponentA(); private ComponentB compB = new ComponentB(); public void delegateMethodA() { compA.methodA(); } public void delegateMethodB() { compB.methodB(); } }A classe
MyClass3delega as chamadas de métodos aos objetoscompAecompB.
Comparação:
| Mecanismo | Herança de implementação | Problema do diamante | Flexibilidade |
|---|---|---|---|
| Interfaces | Não (até default) | Não | Alta |
| Composição | Sim | Não | Alta |