Contenuti del Corso
Java OOP
Java OOP
Che cos'è un'interfaccia?
E se avessimo bisogno di ereditare da più di una classe? Java ci permette di farlo tramite le interfacce. Nonostante il nome, un'interfaccia è molto simile a una classe astratta. Vediamo come si dichiara un'interfaccia:
In termini semplici, un'interfaccia viene utilizzata per definire i metodi che una classe dovrà implementare. Le interfacce hanno una sintassi specifica per la loro creazione. Mentre per creare una classe si utilizza "public class className { }
", la sintassi per creare un'interfaccia è diversa:
InterfaceExample.java
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
Prestare attenzione alla dichiarazione dei metodi;
Non si utilizzano modificatori di accesso;
Non si forniscono corpi dei metodi;
Non è necessario etichettare i metodi come abstract poiché stiamo lavorando all'interno di un'interfaccia;
Non si creano campi all'interno delle interfacce.
Consideriamo l'utilizzo di un'Interface
tramite l'esempio di un Media Player.
Abbiamo un'Interface
chiamata MediaPlayer
che possiede i metodi play
, pause
e stop
. Inoltre, ci sono due classi che implementano questa interfaccia media player, ovvero AudioPlayer
e VideoPlayer
.
MediaPlayer.java
AudioPlayer.java
VideoPlayer.java
public interface MediaPlayer { void play(); void pause(); void stop(); }
Come puoi vedere, abbiamo creato un interface
e due classi che implementano questa interfaccia. La sintassi è la stessa di quando si sovrascrivono i metodi astratti. Abbiamo sovrascritto ogni metodo per ciascuna classe affinché svolga la propria funzione specifica.
Una delle caratteristiche delle interfacce è che possiamo implementare più di una interfaccia. Vediamo un esempio:
Vehicle.java
VehicleInfo.java
Car.java
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Abbiamo creato le interfacce Vehicle
e VehicleInfo
. Inoltre, abbiamo creato una classe Car
che implementa entrambe queste interfacce. In questo modo, possiamo scegliere quale comportamento implementare nella classe, il che si integra perfettamente con il principio della astrazione della programmazione orientata agli oggetti.
Lavorare con le interfacce è molto conveniente e sono ampiamente utilizzate. Nel prossimo capitolo, esploreremo anche le principali differenze tra un'interfaccia e una classe astratta e impareremo quale sia meglio utilizzare nella pratica!
1. Che cos'è un'interfaccia in Java?
2. In Java, una classe può implementare più interfacce?
3. Qual è lo scopo di un'interfaccia in Java?
4. Quale parola chiave viene utilizzata per implementare un'interfaccia in una classe?
5. Cosa succede se una classe dichiara di implementare un'interfaccia ma non fornisce implementazioni per tutti i suoi metodi?
Grazie per i tuoi commenti!