Differenza chiave – Classe vs interfaccia
La programmazione orientata agli oggetti (OOP) è un paradigma comune nello sviluppo di software. Aiuta a portare scenari del mondo reale alla programmazione utilizzando classi e oggetti. Una classe è un progetto per creare un oggetto. Il programmatore può creare una classe con proprietà e metodi. Uno studente e un insegnante sono oggetti. La creazione di un oggetto è nota come istanza. OOP utilizza anche le interfacce. Le interfacce e la classe possono sembrare simili, ma hanno una differenza. In questo articolo viene illustrata la differenza tra una classe e un'interfaccia. Il differenza fondamentale tra una classe e un'interfaccia è quello una classe è un tipo di riferimento che è un progetto per creare un'istanza di un oggetto mentre l'interfaccia è un tipo di riferimento che non può essere utilizzato per creare un'istanza di un oggetto.
Cos'è la classe?
In OOP, tutto è considerato come un oggetto. Non è possibile creare un oggetto senza una classe. Una classe è un progetto per creare un oggetto. Quando si costruisce una casa, l'architetto disegna il piano. Il piano è simile a una classe. La casa è simile all'oggetto. La classe è il piano per costruire un oggetto. Un oggetto è ciò che viene creato usando la classe.
La classe contiene le proprietà ei metodi. Uno studente può avere proprietà come nome, voto, numero di indice. Uno studente può avere metodi come leggere, camminare, studiare. Viene creata una classe con le proprietà e i metodi necessari.
La sintassi per creare una classe in molti linguaggi di programmazione è la seguente. Viene creato utilizzando la parola chiave class.
class nome_classe {
// proprietà
//metodi
}
I linguaggi di programmazione come C e Java seguono una sintassi simile per creare un oggetto utilizzando una classe. Si supponga che il nome della classe sia Student.
Studente s1=nuovo Studente ();
Questo s1 è l'oggetto. La parola chiave "new" viene utilizzata per allocare memoria per le proprietà. Una classe ha anche un costruttore per inizializzare proprietà o variabili.
I membri della classe come proprietà e metodi hanno modificatori di accesso. Gli specificatori di accesso descrivono l'accessibilità e la visibilità di quei membri ad altre classi. I membri della classe possono avere identificatori di accesso come public, private e protected. I membri pubblici sono accessibili da altre classi. I membri privati sono accessibili solo alla classe. I membri protetti sono accessibili all'interno della classe e delle relative sottoclassi.
Cos'è l'interfaccia?
L'astrazione è un pilastro della programmazione Object Oriented. Serve per nascondere i dettagli di implementazione e per mostrare la funzionalità all'utente. L'astrazione si ottiene utilizzando classi e interfacce astratte. Un metodo astratto non ha un'implementazione. Una classe che contiene almeno un metodo astratto è chiamata classe astratta.
Quando ci sono due classi astratte, i metodi dichiarati in quelle classi dovrebbero essere implementati. Una nuova classe viene utilizzata per implementare questi metodi. Se entrambe le classi avessero lo stesso metodo, potrebbe causare un problema di ambiguità. Pertanto, i linguaggi di programmazione come Java e C hanno un'interfaccia.
Le interfacce contengono solo la dichiarazione dei metodi. Non esiste un metodo di attuazione. Inoltre, le interfacce non possono essere utilizzate per creare oggetti. Sono usati per supportare eredità multiple e per proteggere il codice.
La sintassi di Interface è la seguente. Interfaccia usa la parola chiave "interfaccia".
interfaccia nome_interfaccia{
tipo metodo1(elenco_parametri);
tipo metodo2(elenco_parametri);
}
Secondo quanto sopra, le interfacce hanno solo la dichiarazione. Non c'è definizione. Quindi, le interfacce non possono creare un'istanza di oggetti. Fornisce solo una visione astratta di quale sia l'interfaccia. I metodi dichiarati nell'interfaccia possono essere implementati da una o più classi. Una classe utilizza la parola chiave "implement" per implementare un'interfaccia. Fare riferimento all'esempio di seguito scritto utilizzando Java.
Figura 01: Programma utilizzando le interfacce
Secondo il programma sopra, A e B sono interfacce. L'interfaccia A ha una dichiarazione di metodo che è sum(). L'interfaccia B ha una dichiarazione di metodo sub(). La classe C sta implementando entrambe le interfacce che sono A e B. Pertanto, la classe C definisce entrambi i metodi sum() e sub(). Dopo aver creato l'oggetto di tipo C, è possibile chiamare entrambi i metodi sum() e sub().
I metodi dichiarati all'interno dell'interfaccia devono essere sempre pubblici perché le classi di implementazione li definiscono. Un'interfaccia può anche ereditare da un' altra interfaccia.
Quali sono le somiglianze tra classe e interfaccia?
- Entrambi sono tipi di riferimento.
- Entrambi si riferiscono alla programmazione orientata agli oggetti.
Qual è la differenza tra classe e interfaccia?
Classe vs interfaccia |
|
Una classe è un tipo di riferimento che è un progetto per creare un oggetto. | Un'interfaccia è un tipo di riferimento che non può essere istanziato. |
Istanza oggetto | |
Una classe viene utilizzata per istanziare un oggetto. | Un'interfaccia non può essere istanziata perché i metodi non sono in grado di eseguire alcuna azione. |
Costruttore | |
Una classe contiene un costruttore, per inizializzare le variabili. | Un'interfaccia non contiene un costruttore perché non ci sono quasi variabili da inizializzare. |
Parola chiave | |
Una classe utilizza la parola chiave "classe". | Un'interfaccia utilizza la parola chiave "interfaccia". |
Specificatore di accesso | |
I membri della classe possono essere privati, pubblici e protetti. | I membri dell'interfaccia dovrebbero essere sempre pubblici perché le classi di implementazione li definiscono. |
Riepilogo – Classe vs interfaccia
Le classi e le interfacce sono ampiamente utilizzate nella programmazione orientata agli oggetti. La differenza tra una classe e un'interfaccia è che una classe è un tipo di riferimento che è un progetto per creare un'istanza di un oggetto e un'interfaccia è un tipo di riferimento che non può essere utilizzato per creare un'istanza di un oggetto. Una classe può implementare molte interfacce. Ma può estendere solo una superclasse. In interface può ereditare molte interfacce ma non può esserci un'implementazione. Entrambi hanno la loro importanza. Il programmatore può utilizzarli in base allo sviluppo del software.
Scarica il PDF Class vs Interface
Puoi scaricare la versione PDF di questo articolo e usarla per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui Differenza tra classe e interfaccia