Concetti Chiave
- Java uses interfaces to overcome the limitation of a single superclass inheritance, allowing multiple inheritance through interface implementation.
- An interface acts as a prototype, defining the skeleton of a class with methods that subclasses share, ensuring consistency in structure.
- Interfaces are declared using the INTERFACE keyword, establishing protection levels and optionally extending a base class.
- Inheritance from an interface is indicated with IMPLEMENTS, and all interface prototypes must be used in the implementing class to avoid errors.
- Multiple inheritance is achieved in Java by listing multiple interfaces after the IMPLEMENTS command, requiring all prototypes to be implemented.
Le interfacce
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:
public / private interface identificatore extends tipo {
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.
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.