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.
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.
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.
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