La programmazione orientata agli oggetti (OOP) è un paradigma per progettare un programma utilizzando classi e metodi. Gli scenari del mondo reale possono essere mappati agli oggetti. Pertanto, è facile creare soluzioni software. Una classe è un progetto per costruire un oggetto. Contiene proprietà e metodi. Ad esempio, prima di creare un oggetto studente, dovrebbe esserci uno studente di classe con proprietà e metodi. Uno studente può avere proprietà come ID studente, nome e metodi come leggere, scrivere, studiare. I metodi descrivono il comportamento mentre le proprietà sono gli attributi. Dopo aver creato la classe, è possibile creare oggetti che li utilizzano. La creazione dell'oggetto è anche nota come istanziazione dell'oggetto. L'oggetto non esiste in isolamento. Comunicano con altri oggetti e i dati vengono passati all'interno degli oggetti. Uno dei pilastri dell'OOP è l'ereditarietà. Lo scopo dell'ereditarietà è aumentare la riusabilità del codice. Crea una nuova classe di proprietà e metodi della classe già esistente. La classe esistente è nota come classe base e la nuova classe è chiamata classe derivata. L'ereditarietà multipla e l'ereditarietà multilivello sono tipi di ereditarietà. Questo articolo discute la differenza tra loro. Il differenza fondamentale tra l'ereditarietà multipla e multilivello è così L'ereditarietà multipla è quando una classe eredita da molte classi base mentre l'ereditarietà multilivello è quando una classe eredita da una classe derivata che fa di quella classe derivata una classe base per una nuova classe.
1. Panoramica e differenza chiave
2. Cos'è l'ereditarietà multipla
3. Cos'è l'ereditarietà multilivello
4. Somiglianze tra ereditarietà multipla e multilivello
5. Confronto affiancato - Ereditarietà multipla e multilivello in forma tabulare
6. Sommario
L'ereditarietà multipla è quando una classe eredita più di una classe base.
Figura 01: Ereditarietà multipla
A B e C sono classi. A e B sono classi base e C è la classe derivata. La classe C deve gestire la dipendenza di entrambe le classi di base A e B. L'ereditarietà multipla non è ampiamente utilizzata nei progetti software. Rende il sistema più complesso perché una classe eredita molte classi.
Ad esempio, supponiamo che le classi A e B abbiano entrambi un metodo con lo stesso nome che è sum () e che la classe C derivi entrambe le classi. Dopo aver creato un oggetto di tipo C e chiamando il metodo sum (), può causare un errore perché entrambe le classi hanno lo stesso metodo. Il compilatore non sa quale funzione chiamare. Pertanto, l'ereditarietà multipla aumenta la complessità di un sistema. L'ereditarietà multipla è supportata nel linguaggio C ++ ma linguaggi come Java, C # non supportano l'Eredità multipla. Invece, queste lingue usano un'interfaccia simile a una classe ma non possono essere istanziate.
L'ereditarietà multilivello si ha quando una classe eredita da una classe derivata che trasforma quella classe derivata in una classe base per una nuova classe.
Figura 02: Ereditarietà multilivello
L'ereditarietà multilivello ha tre livelli. La classe intermedia che B eredita dalla classe A e dalla classe C eredita dalla classe B. A è la classe base per B e B è la classe base per C.
Un programma che implementa l'ereditarietà multilivello è il seguente. Il programma è scritto usando Java.
Figura 03: programma che implementa l'ereditarietà multilivello
Secondo il programma di cui sopra, la classe A è la classe base per la classe B. La classe B è la classe base per la classe C. Tutte le proprietà e i metodi della classe A sono accessibili dalla classe B. Tutte le proprietà e i metodi della classe B sono accessibili per classe C. Pertanto, la classe C può accedere alle proprietà e ai metodi di entrambi A e B. Quando si crea un oggetto di tipo C, è possibile chiamare tutti e tre i metodi A (), B () e C (). L'uscita darà A, B, C.
Eredità multipla rispetto all'ereditarietà multilivello | |
L'ereditarietà multipla è un tipo di ereditarietà in cui una classe eredita da più di una classe base. | L'ereditarietà multilivello è un tipo di ereditarietà che eredita da una classe derivata, rendendo tale classe derivata una classe base per una nuova classe. |
uso | |
L'ereditarietà multipla non è ampiamente utilizzata perché rende il sistema più complesso. | L'ereditarietà multilivello è ampiamente utilizzata. |
Livelli di classe | |
L'ereditarietà multipla ha due livelli di classe, cioè classe base e classe derivata. | L'ereditarietà multilivello ha tre livelli di classe: classe base, classe intermedia e classe derivata. |
L'ereditarietà è uno dei pilastri principali della programmazione orientata agli oggetti. Esistono diversi tipi di ereditarietà; sono ereditarietà a livello singolo, ereditarietà multilivello, ereditarietà multipla, ereditarietà gerarchica e ereditarietà ibrida. L'ereditarietà a livello singolo ha una classe base e una classe derivata. L'ereditarietà gerarchica ha una classe base e molte classi derivate. L'ereditarietà ibrida è una combinazione di multilivello e di eredità multipla. Questo articolo descrive la differenza tra l'ereditarietà multipla e l'ereditarietà multilivello. La differenza tra ereditarietà multipla e multilivello è che l'ereditarietà multipla è quando una classe eredita da molte classi base mentre l'ereditarietà multilivello è quando una classe eredita da una classe derivata, rendendo tale classe derivata una classe base per una nuova classe. L'ereditarietà multilivello è ampiamente utilizzata rispetto all'ereditarietà multipla.
È possibile scaricare la versione PDF di questo articolo e utilizzarlo per scopi offline come da nota di citazione. Scarica qui la versione PDF Differenza tra ereditarietà multipla e multilivello
1.Singh, Chaitanya, et al. "Tipi di ereditarietà in Java: singolo, multiplo, multilivello e ibrido." Beginnersbook.com, 6 dic. 2013. Disponibile qui
2.tutorialspoint.com. "Java Inheritance". Il punto. Disponibile qui
1.'Multiple Ereditarietà 'By Suman Maverick Gangulian Suman420 - Opera propria, (CC BY 3.0) attraverso Commons Wikimedia
2.'Multilevel Inheritance'Con Autore: Suman Maverick Gangulian Suman420 (parla) 12:03, 2 marzo 2015 (UTC) - Opera propria, (CC BY 3.0) attraverso Commons Wikimedia