Java è un linguaggio di programmazione sviluppato da Sun Microsystems. Java può essere utilizzato per sviluppare varie applicazioni. È un linguaggio multi-paradigma che supporta orientato agli oggetti, strutturato, ecc. Il vantaggio principale di Java è che supporta la programmazione orientata agli oggetti (OOP). Il programmatore può creare classi e oggetti. Ci sono quattro pilastri in OOP. Sono ereditarietà, polimorfismo, astrazione e incapsulamento. L'ereditarietà e le interfacce sono legate a OOP. Il differenza fondamentale tra ereditarietà e interfaccia è quello l'ereditarietà consiste nel derivare nuove classi da classi esistenti e un'interfaccia deve implementare classi astratte e ereditarietà multipla.
1. Panoramica e differenza chiave
2. Cos'è l'ereditarietà in Java
3. Cos'è l'interfaccia in Java
4. Somiglianze tra ereditarietà e interfaccia in Java
5. Confronto affiancato - Ereditarietà rispetto all'interfaccia in Java in formato tabulare
6. Sommario
L'ereditarietà può raggiungere l'usabilità del codice. L'ereditarietà aiuta a riutilizzare gli attributi e i metodi di una classe esistente. Il meccanismo di derivare una nuova classe usando la vecchia classe è chiamato ereditarietà. La vecchia classe è conosciuta come genitore o super classe. La classe derivata si chiama child class o subclass.
La sintassi dell'ereditarietà di Java è la seguente.
class subclass_name estende superclass_name
dichiarazione variabile;
dichiarazione del metodo;
Il concetto di ereditarietà può essere spiegato utilizzando il seguente esempio. Supponiamo che ci sia una classe chiamata A come segue.
classe pubblica A
public void sum ()
System.out.println ( “Sum”);
Se vogliamo aggiungere un nuovo metodo senza modificare la classe esistente, possiamo farlo come segue.
classe pubblica B
public void sub ()
System.out.println ( “Sub”);
Il programmatore può utilizzare l'ereditarietà per utilizzare la somma di classe A ().
la classe pubblica B estende la classe A
public void sub ()
System.out.println ( “Sub”);
Nella funzione principale, è possibile creare un oggetto di B e chiamare sub (), che appartiene alla classe B e sum (), che appartiene alla classe A utilizzando l'ereditarietà.
public static void main (String [] args)
B obj = new B ();
obj.sub ();
obj.sum ();
Esistono diversi tipi di ereditarietà. Sono ereditarietà singola, ereditarietà multipla, ereditarietà multi-livello e ereditarietà gerarchica. Nel eredità singola, c'è una classe base e una classe derivata. Nel eredità multi-livello, ci sono tre classi e cioè classe base, classe intermedia e classe derivata. La classe intermedia eredita dalla classe base e la classe derivata eredita dalla classe intermedia. Nel eredità gerarchica, c'è una classe base e molte classi derivate. C'è un tipo speciale conosciuto come Eredità ibrida. È una combinazione di due o più tipi di ereditarietà.
Figura 01: ereditarietà
Nel Eredità multipla ci sono molte classi base e una classe derivata. Supponiamo che le classi A e B siano le classi base. La classe C è la classe derivata. Se entrambe le classi A e B hanno lo stesso metodo e il programmatore chiama tale metodo dalla classe derivata, causerà un problema di ambiguità. Ereditare due classi può causare un errore in fase di compilazione. Pertanto, l'ereditarietà multipla non è supportata in Java. È possibile utilizzare un'interfaccia per superare questo problema.
L'astrazione è un processo che nasconde i dettagli dell'implementazione e mostra solo le funzionalità all'utente. L'astrazione può essere ottenuta utilizzando classi o interfacce astratte. Un metodo astratto è un metodo senza un'implementazione. Una classe con almeno un metodo astratto è una classe astratta. L'esempio di una classe astratta è il seguente.
classe astratta A
abstract void sum ();
Supponiamo che ci siano due classi astratte come A e B. Per implementare i metodi astratti di A e B, viene creata una nuova classe C. Quindi la classe C dovrebbe estendere sia A che B., ma l'ereditarietà multipla non è supportata in Java. Pertanto, dovrebbe utilizzare le interfacce. Le interfacce possono essere utilizzate per dichiarare metodi, ma non è possibile definire metodi. Non è possibile creare un oggetto usando le interfacce. La classe C dovrebbe implementare tutti i metodi nell'interfaccia A e B.
interfaccia A
void sum ();
interfaccia B
void sub ();
la classe C implementa A, B
public void sum ()
System.out.println ( “Somma”);
public void sub ()
System.out.println ( “sottrazione”);
Ora, nel programma principale è possibile creare un oggetto di C e chiamare entrambi i metodi.
public static void main (String [] args)
C obj = new C ();
obj.sum ();
obj.sub ();
Quindi, le interfacce possono utilizzare per implementare l'ereditarietà multipla.
Un altro uso delle interfacce è che fornisce sicurezza. Fare riferimento al codice seguente.
interfaccia A
void sum ();
la classe B implementa A
public void sum ()
System.out.println ( “Somma”);
public void multiply ()
System.out.println ( “Moltiplicazione”);
Quando si crea un oggetto di B, è possibile chiamare entrambi i metodi sum () e multiply (). Se il programmatore vuole limitare l'uso della funzione multiply (), è possibile come segue.
public static void main (String [] args)
A obj = new B ();
obj.sum ();
A obj = new B (); creerà un oggetto. È di tipo A e la memoria è allocata come B. È possibile chiamare sum () ma non eseguire multiply (). Questa restrizione viene eseguita utilizzando le interfacce.
Ereditarietà vs Interfaccia in Java | |
L'ereditarietà è un concetto di OOP per derivare nuove classi dalle classi esistenti. | L'interfaccia è un meccanismo in OOP per implementare l'astrazione e l'ereditarietà multipla. |
uso | |
L'ereditarietà consente la riusabilità del codice. | Le interfacce forniscono l'astrazione e l'ereditarietà multipla. |
Java è un linguaggio di programmazione multi-paradigma che supporta la programmazione orientata agli oggetti. L'ereditarietà e le interfacce sono legate alla programmazione orientata agli oggetti. La differenza tra ereditarietà e interfaccia è che l'ereditarietà consiste nel derivare nuove classi da classi e interfacce esistenti per implementare classi astratte e eredità multiple.
È possibile scaricare la versione PDF di questo articolo e utilizzarlo per scopi offline come da nota di citazione. Scarica qui la versione PDF Differenza tra ereditarietà e interfaccia in Java
1. Punto, esercitazioni. "Java Inheritance"., Tutorial Point, 31 ottobre 2017. Disponibile qui
2. Point, Tutorials. "Interfacce Java". , Punto tutorial, 31 ottobre 2017. Disponibile qui
1.'CPT-OOP-eredità-bikes 'By Pluke - Opera propria, (Public Domain) via Commons Wikimedia