Differenza tra classe e interfaccia in Java

author
4 minutes, 41 seconds Read

Classe e interfaccia sono entrambe usate per creare nuovi tipi di riferimento. Una classe è una collezione di campi e metodi che operano sui campi. Un’interfaccia ha metodi completamente astratti, cioè metodi con nessuno. Un’interfaccia è sintatticamente simile alla classe ma c’è una grande differenza tra classe e interfaccia che è una classe può essere istanziata, ma un’interfaccia non può mai essere istanziata.

Quindi impariamo qualche altra differenza tra una classe e un’interfaccia con l’aiuto di un grafico di confronto mostrato qui sotto.

Contenuto: Classe Vs Interfaccia

  1. Gramma di confronto
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Gramma di confronto

Base di confronto Classe Interfaccia
Basico Una classe viene istanziata per creare oggetti. Un’interfaccia non può mai essere istanziata in quanto i metodi non sono in grado di eseguire alcuna azione all’invocazione.
Parola chiave classe interfaccia
Specificatore di accesso I membri di una classe possono essere privati, pubblici o protetti. I membri di un’interfaccia sono sempre pubblici.
Metodi I metodi di una classe sono definiti per eseguire un’azione specifica. I metodi di un’interfaccia sono puramente astratti.
Implementare/Extendere Una classe può implementare qualsiasi numero di interfacce e può estendere solo una classe. Un’interfaccia può estendere più interfacce ma non può implementarne nessuna.
Costruttore Una classe può avere costruttori per inizializzare le variabili. Un’interfaccia non può mai avere un costruttore perché non c’è quasi nessuna variabile da inizializzare.

Definizione di classe

Una classe è un aspetto molto importante della programmazione Java senza classi non è possibile implementare un programma java. Una classe crea tipi di riferimento e questi tipi di riferimento sono usati per creare oggetti. Una classe ha una firma e un corpo. La firma di una classe ha il nome della classe e le informazioni che dicono se la classe ha ereditato un’altra classe. Il corpo di una classe ha campi e metodi che operano su questi campi. Una classe viene creata usando la parola chiave class. Vediamo come dichiarare una classe.

class class_name{/*fields...methods*/}

Quando una classe viene istanziata ogni oggetto creato contiene una copia dei campi e dei metodi con essi. I campi e i membri dichiarati all’interno di una classe possono essere statici o non statici. Il valore dei membri statici è costante per ogni oggetto, mentre i membri non statici sono inizializzati da ogni oggetto in modo diverso a seconda delle sue esigenze.

I membri di una classe hanno specificatori di accesso che decidono la visibilità e l’accessibilità dei membri all’utente o alle sottoclassi. Gli specificatori di accesso sono pubblico, privato e protetto. Una classe può essere ereditata da un’altra classe usando lo specificatore di accesso che deciderà la visibilità dei membri di una superclasse (classe ereditata) in una sottoclasse (classe ereditante). Così la classe soddisfa il concetto di occultamento e incapsulamento dei dati nella programmazione orientata agli oggetti.

Definizione di interfaccia

Un’interfaccia è anche tra i tipi di riferimento definiti in Java. L’importanza di un’interfaccia è che in Java, una classe può ereditare solo una singola classe. Per evitare questa restrizione, i progettisti di Java hanno introdotto il concetto di interfaccia. Un’interfaccia è sintatticamente simile a una classe, ma manca della dichiarazione dei campi e i metodi all’interno di un’interfaccia non hanno alcuna implementazione. Un’interfaccia è dichiarata usando una parola chiave interface. Vediamo la dichiarazione di un’interfaccia.

interface interface_name {type var_name= value;type method1(parameter-list);type method2(parameter-list);..}

Un’interfaccia non definisce alcun metodo dichiarato al suo interno perché manca di campi su cui operare. Proprio perché qualsiasi metodo all’interno di un’interfaccia non esegue alcuna azione, un’interfaccia non può mai essere istanziata. Se un’interfaccia ha un qualsiasi campo membro, questo deve essere inizializzato al momento della sua dichiarazione. Un’interfaccia non contiene mai alcun costruttore poiché manca di membri di campo da inizializzare. Quindi, un’interfaccia definisce solo ciò che una classe deve fare invece di come deve fare.

Un’interfaccia, una volta creata, può essere implementata da qualsiasi numero di classi usando una parola chiave implements. Ma le classi che implementano un’interfaccia devono definire tutti i metodi all’interno di un’interfaccia. Un’interfaccia può anche ereditare un’altra interfaccia usando la parola chiave extend. Se una classe implementa un’interfaccia che estende un’altra interfaccia. Allora una classe deve definire i metodi di entrambe le interfacce che appaiono in una catena. I metodi all’interno di un’interfaccia devono essere sempre pubblici perché devono essere accessibili alle classi che li implementano.

Differenze chiave tra classe e interfaccia in Java

  1. Una classe può essere istanziata creando i suoi oggetti. Un’interfaccia non viene mai istanziata perché i metodi dichiarati all’interno di un’interfaccia sono astratti e non eseguono alcuna azione, quindi non c’è bisogno di istanziare alcuna interfaccia.
  2. Una classe viene dichiarata usando una parola chiave class. Allo stesso modo, un’interfaccia viene creata usando una parola chiave interface.
  3. I membri di una classe possono avere lo specificatore di accesso come public, private, protected. Ma i membri di un’interfaccia sono sempre pubblici perché devono essere accessibili alle classi che li implementano.
  4. I metodi all’interno di una classe sono definiti per eseguire un’azione sui campi dichiarati nella classe. Poiché l’interfaccia manca della dichiarazione dei campi, i metodi all’interno di un’interfaccia sono puramente astratti.
  5. Una classe può implementare qualsiasi numero di interfacce ma può estendere solo una super classe. Un’interfaccia può estendere qualsiasi numero di interfacce ma non può implementare nessuna interfaccia.
  6. Una classe ha dei costruttori definiti al suo interno per ottenere l’inizializzazione della variabile. Ma un’interfaccia non ha costruttori perché non ci sono campi da inizializzare. I campi di un’interfaccia sono inizializzati solo al momento della loro dichiarazione.

Conclusione

Entrambe le classi e le interfacce hanno la loro importanza. Una classe viene usata quando abbiamo bisogno di definire come il compito verrebbe svolto. Un’interfaccia viene usata quando abbiamo bisogno di sapere quale compito deve essere svolto.

Similar Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.