Estendere le Interfacce in Java
Concetti Chiave
- Le interfacce in Java possono essere estese per ereditare metodi da altre interfacce.
- Questo permette una maggiore modularità e riutilizzo del codice, poiché le classi che implementano l'interfaccia estesa devono fornire implementazioni per tutti i metodi richiesti dalla catena di ereditarietà dell'interfaccia.
Le interfacce possono essere estese
Un'interfaccia può ereditare un'altra utilizzando la parola chiave extends
.
La sintassi è la stessa usata per ereditare le classi. Quando una classe implementa un'interfaccia che eredita un'altra interfaccia, deve fornire implementazioni per tutti i metodi richiesti dalla catena di ereditarietà dell'interfaccia.
Di seguito un esempio:
// Un'interfaccia può estenderne un'altra.
interface A {
void metodo1();
void metodo2();
}
// B ora include metodo1() e metodo2() -- aggiunge metodo3().
interface B extends A {
void metodo3();
}
// Questa classe deve implementare tutti i metodi di A e B
class MiaClasse implements B {
public void metodo1() {
System.out.println("Implementare metodo1().");
}
public void metodo2() {
System.out.println("Implementare metodo2().");
}
public void metodo3() {
System.out.println("Implementare metodo3().");
}
}
class IFEstende {
public static void main(String[] args) {
MiaClasse oggetto = new MiaClasse();
oggetto.metodo1();
oggetto.metodo2();
oggetto.metodo3();
}
}
Nota
Attenzione alla completezza dell'implementazione
Come esperimento, si può provare a rimuovere l'implementazione di metodo1()
in MiaClasse
. Questo causerà un errore di compilazione.
Come detto in precedenza, ogni classe che implementa un'interfaccia deve implementare tutti i metodi richiesti da quell'interfaccia, inclusi quelli ereditati da altre interfacce.