Concetti Chiave
- Le interfacce in Java consentono di aggirare il limite dell'ereditarietà singola, permettendo l'ereditarietà multipla.
- Per dichiarare un'interfaccia si utilizza la parola chiave INTERFACE, seguita dal livello di protezione e dall'estensione di una classe base se necessario.
- Per implementare un'interfaccia, si utilizza il comando IMPLEMENTS, invece di EXTENDS, per indicare l'ereditarietà da un'interfaccia.
- Tutti i prototipi definiti nell'interfaccia devono essere implementati nella classe, altrimenti si genera un messaggio di errore.
- Le interfacce sono utili quando ci sono molte sottoclassi con una struttura simile e metodi analoghi, facilitando la coerenza nel codice.
Siccome ogni classe può estendere solamente una superclasse, Java aggira il problema attraverso l’implementazione di Interfacce. L’interfaccia rappresenta un prototipo e consente al programmatore di definire lo scheletro di una classe. Pertanto le interfacce saranno vantaggiose in tutti quei casi con molte sottoclassi aventi tutte una struttura simile alla superclasse con metodi simili. Per dichiarare un’interfaccia si ricorre al comando INTERFACE ossia alla seguente sintassi:
Indice
Qual è la dichiarazione e utilizzo delle interfacce?
Pertanto si definisce il livello di protezione dell’interfaccia, s’inserisce la parola chiave INTERFACE e successivamente si può anche estendere una classe se l’interfaccia è definita a partire da una classe base. Per segnalare poi l’ereditarietà da una interfaccia si utilizza non più EXTENDS ma IMPLEMENTS. Bisogna ricordare che quando si implementa un’interfaccia bisogna poi utilizzare tutti i prototipi di questa altrimenti si avrà in risposta un messaggio di errore.
Ereditarietà multipla tramite interfacce
Attraverso le interfacce, come detto all’inizio del paragrafo, è possibile l’ereditarietà multipla, infatti, in seguito al comando Implements è possibile elencare una moltitudine d’interfacce. Ricorda però che tutti i prototipi delle interfacce andranno poi introdotti nella classe implementante.
Domande da interrogazione
- Qual è il ruolo delle interfacce in Java rispetto all'ereditarietà?
- Come si dichiara e utilizza un'interfaccia in Java?
- Come si dichiara un'interfaccia in Java?
- Qual è il vantaggio principale delle interfacce in Java?
- Cosa succede se non si implementano tutti i prototipi di un'interfaccia?
Le interfacce in Java consentono di aggirare il limite dell'ereditarietà singola, permettendo l'ereditarietà multipla. Esse fungono da prototipi, consentendo di definire schemi comuni per classi con strutture simili (come indicato nel testo).
Per dichiarare un'interfaccia in Java, si definisce il livello di protezione, si utilizza la parola chiave INTERFACE e si può estendere una classe base. Quando si implementa un'interfaccia, è necessario utilizzare tutti i suoi prototipi per evitare errori.
Per dichiarare un'interfaccia in Java, si utilizza la parola chiave INTERFACE seguita dalla definizione del livello di protezione. Se necessario, è possibile estendere una classe base, ma per l'ereditarietà da un'interfaccia si utilizza il comando IMPLEMENTS (come descritto nel testo).
Le interfacce sono vantaggiose quando ci sono molte sottoclassi con una struttura simile alla superclasse, poiché permettono di definire uno scheletro comune senza limitare l'ereditarietà a una sola superclasse.
Se non si implementano tutti i prototipi di un'interfaccia, il programmatore riceverà un messaggio di errore, poiché è obbligatorio fornire tutte le implementazioni richieste (secondo quanto riportato nel testo).