Differenza tra classe e interfaccia in Java

Autore: Laura McKinney
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 14 Maggio 2024
Anonim
java Object Oriented: classi astratte ed interfacce - Lezione 26
Video: java Object Oriented: classi astratte ed interfacce - Lezione 26

Contenuto


Class e Interface sono entrambi utilizzati per creare nuovi tipi di riferimento. Una classe è una raccolta di campi e metodi che operano su campi. Un'interfaccia ha metodi completamente astratti, cioè metodi con nessuno. Un'interfaccia è sintatticamente simile alla classe ma esiste una grande differenza tra classe e interfaccia che è una classe che può essere istanziata, ma un'interfaccia non può mai essere istanziata. Cerchiamo quindi di imparare qualche differenza in più tra una classe e l'interfaccia con l'aiuto di una tabella di confronto mostrata di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoClasseInterfaccia
Di baseUna classe viene istanziata per creare oggetti.Un'interfaccia non può mai essere istanziata poiché i metodi non sono in grado di eseguire alcuna azione sull'invocazione.
Parola chiaveclasseinterfaccia
Identificatore di accessoI 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 in un'interfaccia sono puramente astratti.
Implementare / ExtendUna classe può implementare qualsiasi numero di interfaccia e può estendere solo una classe.Un'interfaccia può estendere più interfacce ma non può implementare alcuna interfaccia.
Costruttore Una classe può avere costruttori per inizializzare le variabili.Un'interfaccia non può mai avere un costruttore in quanto non c'è quasi alcuna variabile da inizializzare.


Definizione di classe

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

class nome_classe {/ * campi ... metodi * /}

Quando viene creata un'istanza di una classe, ogni oggetto creato contiene una copia di campi e 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 ciascun oggetto, mentre i membri non statici vengono inizializzati da ciascun oggetto in modo diverso in base alle sue esigenze.


I membri di una classe hanno identificatori di accesso che decidono la visibilità e l'accessibilità dei membri all'utente o alle sottoclassi. Gli identificatori di accesso sono pubblici, privati ​​e protetti. Una classe può essere ereditata da un'altra classe utilizzando l'identificatore di accesso che deciderà la visibilità dei membri di una superclasse (classe ereditata) in una sottoclasse (classe ereditaria). Pertanto 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 limitazione, i progettisti di Java hanno introdotto un concetto di interfaccia. Un'interfaccia è sintatticamente simile a una classe, ma manca di dichiarazione sul campo e i metodi all'interno di un'interfaccia non hanno alcuna implementazione. Un'interfaccia viene dichiarata utilizzando una parola chiave interfaccia. Vediamo la dichiarazione di un'interfaccia.

interfaccia nome_interfaccia {tipo nome_ var = valore; digitare method1 (elenco parametri); digitare method2 (elenco parametri); . . }

Un'interfaccia non definisce alcun metodo dichiarato al suo interno perché manca di campi su cui operare. Solo perché qualsiasi metodo all'interno di un'interfaccia non esegue alcuna azione, un'interfaccia non può mai essere istanziata. Se un'interfaccia ha un membro del campo, deve essere inizializzata al momento della sua dichiarazione. Un'interfaccia non contiene mai alcun costruttore in quanto manca nei membri del campo per ottenere l'inizializzazione. Quindi, un'interfaccia definisce solo cosa deve fare una classe invece di come deve fare.

Un'interfaccia creata una volta può essere implementata da qualsiasi numero di classi usando una parola chiave attrezzi. 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 estendere parola chiave. Se una classe implementa un'interfaccia che estende un'altra interfaccia. Quindi una classe deve definire i metodi di entrambe le interfacce che compaiono in una catena. I metodi all'interno di un'interfaccia devono essere sempre pubblici in quanto devono essere accessibili dalle 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 poiché i metodi dichiarati all'interno di un'interfaccia sono astratti e non eseguono alcuna azione, quindi non è possibile istanziare alcuna interfaccia.
  2. Una classe viene dichiarata utilizzando una classe di parole chiave. Allo stesso modo, viene creata un'interfaccia utilizzando un'interfaccia per parole chiave.
  3. I membri di una classe possono avere l'identificatore di accesso come pubblico, privato, protetto. Ma i membri di un'interfaccia sono sempre pubblici in quanto devono essere accessibili dalle 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 nella dichiarazione dei campi, i metodi all'interno di un'interfaccia sono puramente astratti.
  5. Una classe può implementare un numero qualsiasi di interfacce ma può estendere solo una superclasse. Un'interfaccia può estendere un numero qualsiasi di interfacce ma non può implementare alcuna interfaccia.
  6. Una classe ha costruttori definiti al suo interno per inizializzare la variabile. Ma un'interfaccia non ha costruttori in quanto non ci sono campi da inizializzare. I campi di un'interfaccia sono inizializzati solo al momento della loro dichiarazione.

Conclusione:

Sia le classi che le interfacce hanno la loro importanza. Una classe viene utilizzata quando è necessario definire come svolgere l'attività. Un'interfaccia viene utilizzata quando dobbiamo sapere quale compito deve essere svolto.