Ereditarietà singola vs ereditarietà multipla

Autore: Laura McKinney
Data Della Creazione: 4 Aprile 2021
Data Di Aggiornamento: 13 Maggio 2024
Anonim
Ereditarietà singola vs ereditarietà multipla - Altro
Ereditarietà singola vs ereditarietà multipla - Altro

Contenuto

La differenza chiave tra eredità singola e eredità multiple è che nella singola eredità, la classe derivata eredita solo una singola classe base mentre, in più eredità, la classe derivata eredita più di una classe base.


L'ereditarietà è uno dei concetti più importanti in OOP che è la programmazione orientata agli oggetti. Il concetto di riusabilità è supportato in eredità. Riusabilità significa che la nuova classe riutilizza le proprietà della classe già esistente. Nella classe derivata dall'ereditarietà eredita la classe base e l'accesso, l'identificatore decide quale membro della classe base verrà ereditato. Esistono tipi di eredità che sono un'unica eredità, eredità gerarchica, eredità multilivello ed eredità ibrida. Nella singola eredità, la classe derivata eredita solo una singola classe base mentre, in più eredità, la classe derivata eredita più di una classe base.

Esiste solo una singola classe derivata ereditata dalla classe base. Esistono tre modi per ereditare la classe di base pubblica, protetta e privata. L'identificatore di accesso viene utilizzato per ereditare la classe base. Il motivo della singola eredità è ereditare le proprietà e il comportamento da una singola classe genitore. Lo scopo principale della programmazione orientata agli oggetti, ovvero la riusabilità del codice, viene raggiunto utilizzando l'ereditarietà singola. Se parliamo di ereditarietà singola rispetto a eredità multipla rispetto a, l'ereditarietà singola deve essere più facilmente rispetto all'ereditarietà multipla. La funzione di override viene utilizzata nella singola eredità. Il polimorfismo di runtime è noto come prevalente. L'override si ottiene utilizzando una parola chiave funzione virtuale. Questa parola chiave è utilizzata nella classe base. Quando la classe derivata ridefinisce una funzione, la funzione sostituita non può essere modificata. La sostituzione in C ++ determina quale versione della funzione viene chiamata. La singola eredità viene utilizzata in C ++, Java, PHP, C # e base visiva.


L'ereditarietà multipla consente di derivare più di una classe base, il che significa che è possibile ottenere le proprietà di più di una classe base. Possiamo avere una classe derivata e più classi base. La classe base viene ereditata menzionando l'identificatore di accesso separato. L'eredità multipla ha fusione simmetrica ed estensione asimmetrica. Quando è presente un modello di adattatore, viene utilizzata l'ereditarietà multipla. L'ereditarietà multipla è utilizzata in C ++, Python, Perl, Eiffel, Dylan, Curl, Eulisp, Tcl. L'implementazione del codice per più eredità è complessa rispetto alla singola eredità.

Contenuto: differenza tra eredità singola e eredità multipla

  • Tabella di comparazione
  • Eredità singola
  • Ereditarietà multipla
  • Differenze chiave
  • Conclusione
  • Video esplicativo

Tabella di comparazione

BaseEredità singolaEreditarietà multipla
Senso Nella singola eredità, la classe derivata eredita solo una singola classe base

In più eredità, la classe derivata eredita più di una classe base.


 

SicuroL'eredità singola è più sicura delle eredità multipleLe eredità multiple non sono sicure da implementare
AccessoNella singola eredità le caratteristiche di una singola classe sono ereditateIn più eredità le funzionalità di più classi possono essere ereditate
Runtime La singola eredità richiede più tempo di esecuzioneL'ereditarietà multipla richiede meno tempo di esecuzione

Eredità singola

Esiste solo una singola classe derivata ereditata dalla classe base. Esistono tre modi per ereditare la classe di base pubblica, protetta e privata. L'identificatore di accesso viene utilizzato per ereditare la classe base. Il motivo della singola eredità è ereditare le proprietà e il comportamento da una singola classe genitore. Lo scopo principale della programmazione orientata agli oggetti, ovvero la riusabilità del codice, viene raggiunto utilizzando l'ereditarietà singola. Se parliamo di eredità singola rispetto a eredità multiple rispetto a, l'eredità singola deve essere più facilmente rispetto a eredità multiple. La funzione di override viene utilizzata nella singola eredità. Il polimorfismo di runtime è noto come prevalente. L'override si ottiene utilizzando una parola chiave funzione virtuale. Questa parola chiave viene utilizzata nella classe base. Quando la classe derivata ridefinisce una funzione, la funzione sostituita non può essere modificata. La sostituzione in C ++ determina quale versione della funzione viene chiamata. La singola eredità viene utilizzata in C ++, Java, PHP, C # e base visiva.

Ereditarietà multipla

Le eredità multiple consentono di derivare più di una classe base, ciò significa che è possibile ottenere le proprietà di più di una classe base. Possiamo avere una classe derivata e più classi base. La classe base viene ereditata menzionando l'identificatore di accesso separato. Le eredità multiple hanno fusione simmetrica ed estensione asimmetrica. Quando è presente un modello di adattatore, vengono utilizzate più eredità. Le eredità multiple sono usate in C ++, Python, Perl, Eiffel, Dylan, Curl, Eulisp, Tcl. L'implementazione del codice per più eredità è complessa rispetto alla singola eredità.

Differenze chiave

  1. Nella singola eredità, la classe derivata eredita solo una singola classe base mentre, in più eredità, la classe derivata eredita più di una classe base.
  2. L'eredità singola è più sicura delle eredità multiple mentre le eredità multiple non sono sicure da implementare.
  3. In eredità singole le caratteristiche di una singola classe sono ereditate mentre in eredità multiple le caratteristiche di più classi possono essere ereditate.
  4. L'eredità singola richiede più tempo di esecuzione mentre le eredità multiple richiedono meno tempo di esecuzione

Conclusione

In questo articolo sopra vediamo la chiara differenza tra eredità singola e eredità multiple con l'implementazione

Video esplicativo