Junior — Middle
È possibile implementare in una sola classe due interfacce, ognuna con metodi con implementazione predefinita?
sobes.tech AI
Risposta dell'AI
Sì, in Java una classe può implementare più interfacce contemporaneamente, anche se queste interfacce contengono metodi con implementazione predefinita (default methods). Tuttavia, se due interfacce contengono metodi con la stessa firma, la classe deve sovrascrivere quel metodo e indicare chiaramente quale implementazione usare o fornire la propria.
Esempio:
interface A {
default void hello() {
System.out.println("Ciao da A");
}
}
interface B {
default void hello() {
System.out.println("Ciao da B");
}
}
class C implements A, B {
@Override
public void hello() {
// Scegliamo esplicitamente l'implementazione o scriviamo la nostra
A.super.hello();
// o B.super.hello();
}
}
In questo modo, il conflitto di metodi con implementazione predefinita viene risolto sovrascrivendo nella classe.