Differenza tra polimorfismo ed ereditarietà in OOP

Sommario:

Differenza tra polimorfismo ed ereditarietà in OOP
Differenza tra polimorfismo ed ereditarietà in OOP

Video: Differenza tra polimorfismo ed ereditarietà in OOP

Video: Differenza tra polimorfismo ed ereditarietà in OOP
Video: EREDITARIETA' E POLIMORFISMO JAVA - PROGRAMMAZIONE #11 | Vita Da Founder 2024, Novembre
Anonim

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 Ereditarietà, Polimorfismo, Astrazione e Incapsulamento. Questo articolo discute la differenza tra polimorfismo ed ereditarietà in OOP. Il differenza fondamentale tra polimorfismo 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.

Cos'è il polimorfismo in OOP?

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

Sovraccarico

Fai riferimento al programma sottostante scritto in Java.

Differenza tra polimorfismo ed ereditarietà in OOP
Differenza tra polimorfismo ed ereditarietà in OOP

Figura 01: sovraccarico

Secondo il programma 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 a sum(int a, int b). Si può osservare che lo stesso oggetto ha comportamenti diversi a seconda della situazione. Quando sono presenti più metodi con lo stesso nome, ma con parametri diversi, si parla di sovraccarico. È anche noto come binding statico o polimorfismo del tempo di compilazione.

Sostituito

Un altro tipo di polimorfismo è prevalente. Fare riferimento al programma sottostante scritto in Java.

Differenza tra polimorfismo ed ereditarietà in OOP_Figure 02
Differenza tra polimorfismo ed ereditarietà in OOP_Figure 02

Figura 02: Override

Secondo il programma sopra, c'è un metodo display() nella classe A. La classe B si estende dalla classe A. Pertanto, tutti i metodi nella classe A sono accessibili dalla classe B. Si tratta di ereditarietà. Il concetto di eredità è 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 darà B. Il metodo di visualizzazione di classe A viene sovrascritto dal metodo di visualizzazione di 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à, si parla di overriding. È anche noto come associazione tardiva, associazione dinamica, polimorfismo di runtime. Il sovraccarico e l'override sono chiamati polimorfismo. È un concetto importante nella programmazione orientata agli oggetti.

Cos'è l'ereditarietà in OOP?

Fai riferimento al programma sottostante scritto in Java.

Differenza chiave tra polimorfismo ed ereditarietà in OOP
Differenza chiave tra polimorfismo ed ereditarietà in OOP

Figura 03: Esempio di eredità

Secondo il programma 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 il riutilizzo del codice. La classe precedente è chiamata classe base, superclasse o classe genitore. La classe derivata è chiamata sottoclasse o classe figlia.

Tipi di eredità

Ci sono vari tipi di eredità. Sono l'ereditarietà a livello singolo, l'ereditarietà multilivello, l'ereditarietà multipla, l'ereditarietà gerarchica e l'ereditarietà ibrida.

Eredità singola

Nell'ereditarietà singola, c'è una superclasse e una sottoclasse. Se la classe A è la superclasse e la classe B è la sottoclasse, tutte le proprietà ei metodi della classe A sono accessibili dalla classe B. Esiste un solo livello; pertanto, è chiamata eredità a livello singolo.

Eredità multilivello

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

Eredità multipla

Nell'ereditarietà multipla, ci sono molte super classi e una sottoclasse. Se ci sono tre super classi chiamate A, B, C e D è la sottoclasse, 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 vengono utilizzate per implementare l'ereditarietà multipla in queste lingue.

Eredità gerarchica

Se ci sono classi chiamate A come superclassi e B, C sono sottoclassi, queste sottoclassi possono ereditare proprietà e metodi della classe A. Questo tipo di ereditarietà è noto come Ereditarietà Gerarchica.

Eredità ibrida

Esiste un altro tipo di ereditarietà speciale noto come ereditarietà ibrida. È una combinazione di eredità multilivello e multiple. Se A, B, C e D sono classi e B eredita da A e D eredita da B e 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 è la capacità di un oggetto di comportarsi in più modi. L'ereditarietà consiste nel creare una nuova classe utilizzando le proprietà e i metodi di una classe esistente.
Utilizzo
Il polimorfismo viene utilizzato dagli oggetti per chiamare quale forma di metodo in fase di compilazione e in fase di esecuzione. L'ereditarietà viene utilizzata per il riutilizzo del codice.
Attuazione
Il polimorfismo è implementato nei metodi. L'ereditarietà è implementata nelle classi.
Categorie
Il polimorfismo può essere suddiviso in sovraccarico e sovrascrittura. L'ereditarietà può essere suddivisa in eredità a livello singolo, multilivello, gerarchica, ibrida e multipla.

Riepilogo – Polimorfismo vs Ereditarietà in OOP

Polimorfismo ed Ereditarietà sono concetti importanti nella programmazione orientata agli oggetti. La differenza tra polimorfismo ed ereditarietà in OOP è che il polimorfismo è un'interfaccia comune a più moduli e l'ereditarietà consiste nel creare una nuova classe utilizzando proprietà e metodi di una classe esistente. Entrambi i concetti sono ampiamente utilizzati nello sviluppo di software.

Scarica il PDF Polimorfismo vs Ereditarietà in OOP

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

Consigliato: