Ereditarietà singola vs ereditarietà multipla
Contenuto
- Contenuto: differenza tra eredità singola e eredità multipla
- Tabella di comparazione
- Eredità singola
- Ereditarietà multipla
- Differenze chiave
- Conclusione
- Video esplicativo
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
Base | Eredità singola | Ereditarietà 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.
|
Sicuro | L'eredità singola è più sicura delle eredità multiple | Le eredità multiple non sono sicure da implementare |
Accesso | Nella singola eredità le caratteristiche di una singola classe sono ereditate | In più eredità le funzionalità di più classi possono essere ereditate |
Runtime | La singola eredità richiede più tempo di esecuzione | L'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
- 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'eredità singola è più sicura delle eredità multiple mentre le eredità multiple non sono sicure da implementare.
- In eredità singole le caratteristiche di una singola classe sono ereditate mentre in eredità multiple le caratteristiche di più classi possono essere ereditate.
- 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