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.
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
Il polimorfismo è indicare più forme. Un oggetto può avere più comportamenti. Il polimorfismo può essere suddiviso in due categorie. Stanno sovraccaricando e sovrascrivendo.
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.
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.
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.
Esistono vari tipi di ereditarietà. Sono ereditarietà a livello singolo, ereditarietà multilivello, ereditarietà multipla, ereditarietà gerarchica e ibridazione ibrida.
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.
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.
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.
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.
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.
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. |
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.
È 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