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: OOP C+ - Considerazioni su ereditarietà e polimorfismo 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. 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.

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

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.

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

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.

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

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

Raccomandato: