Differenza tra classe e interfaccia

Differenza chiave - Classe vs Interface
 

La programmazione orientata agli oggetti (OOP) è un paradigma comune nello sviluppo del software. Aiuta a portare scenari del mondo reale alla programmazione usando 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 è conosciuta come instantiation. OOP utilizza anche interfacce. Interfacce e classe possono sembrare simili, ma hanno una differenza. Questo articolo discute la differenza tra una classe e un'interfaccia. Il differenza fondamentale tra una classe e un'interfaccia è quella 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.

CONTENUTO

1. Panoramica e differenza chiave
2. Cos'è la classe
3. Cos'è l'interfaccia
4. Somiglianze tra classe e interfaccia
5. Confronto affiancato - Classe vs Interfaccia in forma tabulare
6. Sommario

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 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 proprietà e metodi. Uno studente può avere proprietà come nome, voto, numero di indice. Uno studente può avere metodi come leggere, camminare, studiare. Una classe viene creata con le proprietà e i metodi necessari.

La sintassi per la creazione di una classe in molti linguaggi di programmazione è la seguente. Viene creato utilizzando la classe parola chiave.

classe class_name

// proprietà

// metodi

Linguaggi di programmazione come C # e Java seguono una sintassi simile per creare un oggetto usando una classe. Supponi che il nome della classe sia Studente.

Studente s1 = nuovo studente ();

Questo s1 è l'oggetto. La "nuova" parola chiave 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 tali membri in altre classi. I membri della classe possono avere specificatori di accesso come pubblico, privato e protetto. 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 sottoclassi pertinenti.

Cos'è l'interfaccia?

L'astrazione è un pilastro della programmazione orientata agli oggetti. È 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 una classe astratta.

Quando ci sono due classi astratte, i metodi dichiarati in quelle classi dovrebbero essere implementati. Una nuova classe è utilizzata per implementare questi metodi. Se entrambe le classi avessero lo stesso metodo, potrebbe causare un problema di ambiguità. Pertanto, linguaggi di programmazione come Java e C # hanno un'interfaccia.

Le interfacce contengono solo la dichiarazione dei metodi. Non esiste un metodo di implementazione. Inoltre, le interfacce non possono essere utilizzate per creare oggetti. Sono utilizzati per supportare più eredità e per proteggere il codice.

La sintassi di Interface è la seguente. Interfaccia usa la parola chiave "interfaccia".

interfaccia nome_interfaccia

tipo method1 (parameter_list);

tipo method2 (parameter_list);

Secondo quanto sopra, le interfacce hanno solo la dichiarazione. Non c'è una definizione. Quindi, le interfacce non possono creare un'istanza di oggetti. Dà solo una visione astratta di ciò che è l'interfaccia. I metodi dichiarati nell'interfaccia possono essere implementati da una o più classi. Una classe usa la parola chiave "implementare" per implementare un'interfaccia. Fare riferimento all'esempio riportato di seguito utilizzando Java.

Figura 01: programma che utilizza le interfacce

Secondo il programma di cui sopra, A e B sono interfacce. L'interfaccia A ha una dichiarazione di metodo che è la somma (). 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 sempre essere 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 riguardano la 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.
 Istanziazione dell'oggetto
Una classe è usata 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 sono praticamente variabili da inizializzare.
 Parola chiave
Una classe usa la parola chiave "classe". Un'interfaccia utilizza la parola chiave "interfaccia".
Identificatore 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 Interface

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 istanziare un oggetto e l'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. Nell'interfaccia è possibile ereditare molte interfacce ma non può esserci un'implementazione. Entrambi hanno la loro importanza. Il programmatore può usarli secondo lo sviluppo del software.

Scarica PDF Class vs Interface

È possibile scaricare la versione PDF di questo articolo e utilizzarlo per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui Differenza tra classe e interfaccia

Riferimento:

1.tutorialspoint.com. "Oggetti e classi Java"., Il punto. Disponibile qui 
2.navinreddy20. L'interfaccia in Java con un esempio, Java di Navin Reddy, 11 dicembre 2012. Disponibile qui