Differenza tra polimorfismo ed ereditarietà in OOP

Differenza chiave - Polimorfismo vs Ereditarietà in OOP
 

La programmazione orientata agli oggetti (OOP) è comunemente usata per sviluppare software. Molti linguaggi di programmazione supportano la programmazione orientata agli oggetti. La programmazione orientata agli oggetti è una metodologia per progettare un programma utilizzando classi e oggetti. Una classe in OOP è un progetto per creare un oggetto. Una classe ha proprietà e metodi. Un oggetto è un'istanza di una classe. OOP contiene quattro pilastri come l'ereditarietà, il polimorfismo, l'astrazione e l'incapsulamento. Questo articolo discute la differenza tra polimorfismo ed ereditarietà in OOP. Il differenza fondamentale tra Polymorphism ed Ereditarietà in OOP è quello Il polimorfismo è la capacità di un oggetto di comportarsi in più modi e l'ereditarietà consiste nel creare una nuova classe utilizzando proprietà e metodi di una classe esistente.

CONTENUTO

1. Panoramica e differenza chiave
2. Cos'è il polimorfismo in OOP
3. Cos'è l'ereditarietà in OOP
4. Somiglianze tra polimorfismo ed ereditarietà in OOP
5. Confronto affiancato - Polimorfismo vs Ereditarietà in OOP in forma tabulare
6. Sommario

Cos'è il polimorfismo in OOP?

Il polimorfismo è indicare più forme. Un oggetto può avere più comportamenti. Il polimorfismo può essere suddiviso in due categorie. Stanno sovraccaricando e sovrascrivendo.

Sovraccarico

Fare riferimento al seguente programma scritto in Java.

Figura 01: sovraccarico

Secondo il programma di cui sopra, viene creato un oggetto di tipo A. Quando si chiama obj.sum (); darà l'output relativo al metodo sum (). Quando si chiama obj.sum (2,3); darà l'output relativo alla somma (int a, int b). Si può osservare che lo stesso oggetto ha comportamenti diversi a seconda della situazione. Quando ci sono più metodi con lo stesso nome, ma con parametri diversi, è noto come sovraccaricare. È anche conosciuto come legame statico o polimorfismo del tempo di compilazione.

Override

Un altro tipo di polimorfismo è sovrascrivendo. Fare riferimento al seguente programma scritto in Java.

Figura 02: Override

Secondo il programma di cui sopra, c'è un metodo display () in classe A. La classe B si estende dalla classe A. Pertanto, tutti i metodi in classe A sono accessibili dalla classe B. È ereditarietà. Il concetto di ereditarietà è descritto più avanti.

Anche la classe B ha lo stesso metodo display (). Quando si crea un oggetto di tipo A e si chiama il metodo di visualizzazione, l'output restituirà B. Il metodo di visualizzazione di Classe A è sovrascritto dal metodo di visualizzazione della classe B. Quindi, l'output è B.

Quando ci sono metodi con lo stesso nome e gli stessi parametri ma in due classi diverse, e sono collegati con l'ereditarietà, è noto come override. È anche conosciuto come Legame tardivo, Rilegatura dinamica, Polimorfismo di runtime. Il sovraccarico e l'override sono chiamati Polymorphism. È un concetto importante nella programmazione orientata agli oggetti.

Cos'è l'ereditarietà in OOP?

Fare riferimento al seguente programma scritto in Java.

Figura 03: esempio di ereditarietà

Secondo il programma di cui sopra, la classe A ha il metodo sum () e la classe B ha il metodo sub ().

Il metodo sum () della classe A può essere utilizzato nella classe B usando la parola chiave extend. Il riutilizzo delle proprietà e dei metodi in una classe esistente per creare una nuova classe è noto come Ereditarietà. Anche non esiste un metodo sum () nella classe B; è ereditato dalla classe A. L'ereditarietà è utile per la riusabilità del codice. La vecchia classe è chiamata il classe base, superclasse o classe genitore. La classe derivata è chiamata il sottoclasse o classe di bambino.

Tipi di ereditarietà

Esistono vari tipi di ereditarietà. Sono ereditarietà a livello singolo, ereditarietà multilivello, ereditarietà multipla, ereditarietà gerarchica e ibridazione ibrida.

Single Inheritance

In Single Inheritance, c'è una super classe e una sottoclasse. Se la classe A è la super classe e la classe B è la sottoclasse, tutte le proprietà e i metodi della classe A sono accessibili dalla classe B. Esiste un solo livello; pertanto, viene chiamato come ereditarietà a livello singolo.

Eredità multilivello

Nell'ereditarietà multilivello ci sono tre livelli di classi. La classe intermedia eredita dalla super classe. La sottoclasse eredita dalla classe intermedia. Se ci sono tre classi come A, B e C e A è la super classe e B è la classe intermedia. Quindi B eredita da A e C eredita da B, è un'eredità multilivello.

Eredità multipla

In Multiple Ereditarietà, ci sono molte super classi e una sotto classe. Se ci sono tre super classi chiamate A, B, C e D è la sottoclasse, allora la classe D può ereditare da A, B e C. L'ereditarietà multipla è supportata nel linguaggio di programmazione C ++. Non è supportato nei linguaggi di programmazione come Java o C #. Le interfacce sono utilizzate per implementare l'ereditarietà multipla in queste lingue.

Ereditarietà gerarchica

Se ci sono classi chiamate A come super classi e B, C sono sottoclassi, queste sub classi possono ereditare proprietà e metodi della classe A. Quel tipo di ereditarietà è noto come ereditarietà gerarchica.

Eredità ibrida

Esiste un altro tipo di ereditarietà speciale noto come Ibrido. È una combinazione di eredità multi-livello e multiple. Se A, B, C e D sono classi e B eredita da A e D sta ereditando sia da B che da C, allora è un'eredità ibrida.

Quali sono le somiglianze tra polimorfismo ed ereditarietà in OOP?

  • Entrambi sono concetti di programmazione orientata agli oggetti.

Qual è la differenza tra polimorfismo ed ereditarietà in OOP?

Polimorfismo vs ereditarietà in OOP

Il polimorfismo è una capacità di un oggetto di comportarsi in più modi. L'ereditarietà consiste nel creare una nuova classe utilizzando proprietà e metodi di una classe esistente.
 uso
Il polimorfismo viene utilizzato per oggetti per chiamare quale forma di metodi in fase di compilazione e runtime. L'ereditarietà viene utilizzata per la riusabilità del codice.
Implementazione
Il polimorfismo è implementato nei metodi. L'ereditarietà è implementata nelle classi.
 categorie
Il polimorfismo può essere suddiviso in sovraccarico e override. L'ereditarietà può essere suddivisa in ereditarietà a livello singolo, multilivello, gerarchico, ibrido e multiplo.

Sommario - Polimorfismo vs ereditarietà in OOP 

Il polimorfismo e l'ereditarietà sono concetti principali nella programmazione orientata agli oggetti. La differenza tra Polymorphism ed Ereditarietà in OOP è che Polymorphism è un'interfaccia comune a più forme e l'ereditarietà è creare una nuova classe usando proprietà e metodi di una classe esistente. Entrambi i concetti sono ampiamente usati nello sviluppo di software.

Scarica PDF Polymorphism vs Ereditarietà in OOP

È 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 polimorfismo ed ereditarietà in OOP

Riferimento:
  1. 8.3 Che cos'è l'ereditarietà in Java | Conferenza | lezione, Telusko Learning, 15 maggio 2014. Disponibile qui  
  2. Polymorphism in Java Tutorial, Telusko Learning, 15 maggio 2014. Disponibile qui