Welcome to Our Website

Java-Interfaces (Italiano)

Advertisements

Un’interfaccia è un tipo di riferimento in Java. È simile alla classe. È una raccolta di metodi astratti. Una classe implementa un’interfaccia, ereditando così i metodi astratti dell’interfaccia.

Insieme ai metodi astratti, un’interfaccia può contenere anche costanti, metodi predefiniti, metodi statici e tipi nidificati. I corpi dei metodi esistono solo per i metodi predefiniti e i metodi statici.,

Scrivere un’interfaccia è simile alla scrittura di una classe. Ma una classe descrive gli attributi e i comportamenti di un oggetto. E un’interfaccia contiene comportamenti implementati da una classe.

A meno che la classe che implementa l’interfaccia non sia astratta, tutti i metodi dell’interfaccia devono essere definiti nella classe.

Un’interfaccia è simile a una classe nei seguenti modi:

  • Un’interfaccia può contenere un numero qualsiasi di metodi.

  • Un’interfaccia è scritta in un file con un .estensione java, con il nome dell’interfaccia corrispondente al nome del file.,

  • Il codice byte di un’interfaccia appare in un .file di classe.

  • Le interfacce appaiono nei pacchetti e il loro file bytecode corrispondente deve trovarsi in una struttura di directory che corrisponda al nome del pacchetto.

Tuttavia, un’interfaccia è diversa da una classe in diversi modi, tra cui −

  • Non è possibile creare un’istanza di un’interfaccia.

  • Un’interfaccia non contiene alcun costruttore.

  • Tutti i metodi in un’interfaccia sono astratti.

  • Un’interfaccia non può contenere campi di istanza., Gli unici campi che possono apparire in un’interfaccia devono essere dichiarati sia statici che finali.

  • Un’interfaccia non è estesa da una classe; è implementata da una classe.

  • Un’interfaccia può estendere più interfacce.

Dichiarare interfacce

La parola chiave interface viene utilizzata per dichiarare un’interfaccia. Ecco un semplice esempio per dichiarare un’interfaccia −

Esempio

Di seguito è riportato un esempio di un’interfaccia −

Le interfacce hanno le seguenti proprietà –

  • Un’interfaccia è implicitamente astratta., Non è necessario utilizzare la parola chiave astratta mentre si dichiara un’interfaccia.

  • Ogni metodo in un’interfaccia è anche implicitamente astratto, quindi la parola chiave astratta non è necessaria.

  • I metodi in un’interfaccia sono implicitamente pubblici.

Esempio

/* File name : Animal.java */interface Animal { public void eat(); public void travel();}

Implementazione delle interfacce

Quando una classe implementa un’interfaccia, puoi pensare alla classe come alla firma di un contratto, accettando di eseguire i comportamenti specifici dell’interfaccia. Se una classe non esegue tutti i comportamenti dell’interfaccia, la classe deve dichiararsi astratta.,

Una classe utilizza la parola chiave implementa per implementare un’interfaccia. La parola chiave implements viene visualizzata nella dichiarazione di classe dopo la parte extends della dichiarazione.

Esempio

Questo produrrà il seguente risultato −

Output

Mammal eatsMammal travels

Quando si esegue l’override dei metodi definiti nelle interfacce ci sono diverse regole da seguire −

  • Controllato le eccezioni non devono essere dichiarati sull’implementazione di metodi diversi da quelli dichiarati dal metodo di interfaccia o sottoclassi di quelli dichiarati dal metodo di interfaccia.,

  • La firma del metodo di interfaccia e lo stesso tipo o sottotipo restituito devono essere mantenuti quando si sovrascrivono i metodi.

  • Una classe di implementazione stessa può essere astratta e, in tal caso, i metodi di interfaccia non devono essere implementati.

Quando interfacce di implementazione, ci sono diverse regole −

  • Una classe può implementare più di un’interfaccia alla volta.

  • Una classe può estendere solo una classe, ma implementare molte interfacce.

  • Un’interfaccia può estendere un’altra interfaccia, in modo simile a una classe può estendere un’altra classe.,

Estendere le interfacce

Un’interfaccia può estendere un’altra interfaccia nello stesso modo in cui una classe può estendere un’altra classe. La parola chiave extends viene utilizzata per estendere un’interfaccia e l’interfaccia figlio eredita i metodi dell’interfaccia padre.

La seguente interfaccia Sport è esteso da Hockey e Calcio interfacce.

Esempio

L’interfaccia Hockey ha quattro metodi, ma ne eredita due dallo Sport; quindi, una classe che implementa l’Hockey deve implementare tutti e sei i metodi., Allo stesso modo, una classe che implementa il calcio deve definire i tre metodi dal calcio e i due metodi dallo sport.

Estensione di più interfacce

Una classe Java può estendere solo una classe genitore. L’ereditarietà multipla non è consentita. Le interfacce non sono classi, tuttavia, e un’interfaccia può estendere più di un’interfaccia genitore.

La parola chiave extends viene utilizzata una volta e le interfacce padre vengono dichiarate in un elenco separato da virgole.,

Ad esempio, se l’interfaccia di Hockey estendeva sia gli Sport che gli eventi, verrebbe dichiarata come −

Esempio

public interface Hockey extends Sports, Event

Tagging Interfaces

L’uso più comune di estendere le interfacce si verifica quando l’interfaccia genitore non contiene alcun metodo. Ad esempio, l’interfaccia MouseListener in java.oh.pacchetto evento esteso java.util.EventListener, che è definito come –

Esempio

package java.util;public interface EventListener{}

Un’interfaccia senza metodi in essa è indicata come un’interfaccia di tagging., Ci sono due scopi di progettazione di base delle interfacce di tagging −

Crea un genitore comune − Come con l’interfaccia EventListener, che è estesa da decine di altre interfacce nell’API Java, è possibile utilizzare un’interfaccia di tagging per creare un genitore comune tra un gruppo di interfacce. Ad esempio, quando un’interfaccia estende EventListener, la JVM sa che questa particolare interfaccia verrà utilizzata in uno scenario di delega di eventi.

Aggiunge un tipo di dati a una classe − Questa situazione è da dove viene il termine, tagging., Una classe che implementa un’interfaccia di tagging non ha bisogno di definire alcun metodo (poiché l’interfaccia non ne ha), ma la classe diventa un tipo di interfaccia attraverso il polimorfismo.

Pubblicità

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *