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. La differenza fondamentale tra polimorfismo ed ereditarietà in OOP è che 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.
CONTENUTI
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. Riepilogo
Cos'è il polimorfismo in OOP?
Il polimorfismo indica più forme. Un oggetto può avere più comportamenti. Il polimorfismo può essere suddiviso in due categorie. Stanno sovraccaricando e prevalendo.
Sovraccarico
Fare riferimento al seguente programma scritto in Java.
Figura 01: sovraccarico
Secondo il programma precedente, 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 associazione statica o polimorfismo del tempo di compilazione.
Overriding
Un altro tipo di polimorfismo è prioritario. Fare riferimento al seguente programma scritto in Java.
Figura 02: sostituzione
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. È ereditarietà. Il concetto di eredità è descritto ulteriormente in seguito.
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 differenti, e sono collegati con l'ereditarietà, si parla di override. È anche noto come Late binding, Dynamic Binding, Runtime Polymorphism. Il sovraccarico e l'override sono chiamati polimorfismo. È 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 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 utilizzando la parola chiave estendere. 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 classe più vecchia è chiamata classe base, superclasse o classe genitore. La classe derivata è chiamata sottoclasse o classe figlia.
Tipi di ereditarietà
Esistono vari tipi di eredità. Sono Ereditarietà a livello singolo, Ereditarietà multilivello, Ereditarietà multipla, Ereditarietà gerarchica ed Ereditarietà ibrida.
Ereditarietà singola
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. C'è un solo livello; pertanto, è chiamata eredità a livello singolo.
Ereditarietà multilivello
In Multi-Level Inheritance ci sono tre livelli di classi. La classe intermedia eredita dalla super class. 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'ereditarietà multilivello.
Ereditarietà multipla
In Multiple Inheritance, ci sono molte superclassi 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 questi linguaggi.
Ereditarietà gerarchica
Se ci sono classi chiamate A come super classi e B, C sono sottoclassi, quelle 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 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?
Articolo diff. Al centro prima della tabella
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 proprietà e metodi di una classe esistente. |
Utilizzo | |
Il polimorfismo viene utilizzato per gli oggetti per chiamare quale forma di metodi in fase di compilazione e runtime. | L'ereditarietà viene utilizzata per la riutilizzabilità del codice. |
Implementazione | |
Il polimorfismo è implementato nei metodi. | L'ereditarietà è implementata nelle classi. |
Categorie | |
Il polimorfismo può essere suddiviso in overload e override. | L'ereditarietà può essere suddivisa in ereditarietà a livello singolo, multilivello, gerarchica, ibrida e multipla. |
Riepilogo: polimorfismo vs ereditarietà in OOP
Il polimorfismo e l'ereditarietà sono concetti fondamentali nella programmazione orientata agli oggetti. La differenza tra polimorfismo ed ereditarietà in OOP è che il polimorfismo è un'interfaccia comune a più forme 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 software.
Scarica il PDF Polymorphism vs Inheritance in OOP
È possibile scaricare la versione PDF di questo articolo e utilizzarla per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui Differenza tra polimorfismo ed ereditarietà in OOP