Nøgleforskel – Multipel vs Multilevel Arv
Object-Oriented Programming (OOP) er et paradigme til at designe et program ved hjælp af klasser og metoder. Scenarier i den virkelige verden kan kortlægges til objekter. Derfor er det nemt at bygge softwareløsninger. En klasse er en plan for at bygge et objekt. Den indeholder egenskaber og metoder. For eksempel, før du opretter et elevobjekt, skal der være en klasseelev med egenskaber og metoder. En studerende kan have egenskaber som elev-id, navn og metoder som læse, skrive, studere. Metoder beskriver adfærden, mens egenskaber er egenskaberne. Efter oprettelse af klassen er det muligt at oprette objekter ved hjælp af dem. Objektoprettelse er også kendt som Object Instantiation. Objekt eksisterer ikke isoleret. De kommunikerer med andre objekter, og data sendes inden i objekter. En søjle i OOP er arv. Formålet med arv er at øge kodegenanvendelighed. Det opretter en ny klasse af egenskaber og metoder for den allerede eksisterende klasse. Den eksisterende klasse er kendt som basisklassen, og den nye klasse kaldes den afledte klasse. Multipel arv og Multilevel Inheritance er arvetyper. Denne artikel diskuterer forskellen mellem dem. Den vigtigste forskel mellem Multilevel og Multilevel Inheritance er, at Multilevel Inheritance er, når en klasse nedarver fra mange basisklasser, mens Multilevel Inheritance er, når en klasse arver fra en afledt klasse, hvilket gør den afledte klasse til en basisklasse for en ny klasse.
Hvad er multipel arv?
Multiple Inheritance er, når en klasse arver mere end én basisklasse.
Figur 01: Multipel arv
A B og C er klasser. A og B er basisklasser, og C er den afledte klasse. Klassen C skal styre afhængigheden af både basisklasse A og B. Multiple arv er ikke meget brugt i softwareprojekter. Det gør systemet mere komplekst, fordi én klasse arver mange klasser.
Antag for eksempel, at klasse A og B begge har en metode med samme navn, som er sum() og klasse C udleder begge klasser. Efter at have oprettet et objekt af typen C og kaldet sum()-metoden, kan det forårsage en fejl, fordi begge klasser har den samme metode. Compileren ved ikke, hvilken funktion den skal kalde. Derfor øger Multiple Inheritance kompleksiteten af et system. Multiple Inheritance er understøttet i C++ sprog, men sprog som Java, C understøtter ikke Multiple Inheritance. I stedet bruger disse sprog en grænseflade, der ligner en klasse, men som ikke kan instansieres.
Hvad er Multilevel Inheritance?
Multilevel Inheritance er, når en klasse arver fra en afledt klasse, hvilket gør den afledte klasse til en basisklasse for en ny klasse.
Figur 02: Multilevel Inheritance
Arv på flere niveauer har tre niveauer. Den mellemklasse, som B arver fra klasse A, og klasse C arver fra klasse B. A er basisklassen for B, og B er basisklassen for C.
Et program, der implementerer Multilevel Inheritance, er som følger. Programmet er skrevet ved hjælp af Java.
Figur 03: Program, der implementerer Multilevel Inheritance
I henhold til ovenstående program er klasse A basisklassen for klasse B. Klasse B er basisklassen for klasse C. Alle egenskaber og metoder i klasse A er tilgængelige for klasse B. Alle egenskaber og metoder i klasse B er tilgængelig af klasse C. Derfor kan klasse C få adgang til egenskaber og metoder for både A og B. Når du opretter et objekt af typen C, er det muligt at kalde alle tre metode A (), B () og C (). Outputtet vil give A, B, C.
Hvad er ligheden mellem multiple- og multilevel-arv?
Begge er typer af arv
Hvad er forskellen mellem multiple- og multilevel-arv?
Multiple Inheritance vs Multilevel Arv |
|
Multiple Inheritance er en arvetype, hvor en klasse arver fra mere end én basisklasse. | Multilevel Inheritance er en arvetype, der arver fra en afledt klasse, hvilket gør den afledte klasse til en basisklasse for en ny klasse. |
Brug | |
Multiple Inheritance er ikke udbredt, fordi det gør systemet mere komplekst. | Multilevel Heritance er meget udbredt. |
Klasseniveauer | |
Multiple Inheritance har to klasseniveauer, nemlig basisklasse og afledt klasse. | Multilevel Inheritance har tre klasseniveauer, nemlig basisklasse, mellemklasse og afledt klasse. |
Oversigt – Multipel vs Multilevel Arv
Arv er en vigtig søjle i objektorienteret programmering. Der findes forskellige typer af arv; de er Enkeltniveauarv, Multilevelarv, Multipelarv, Hierarkisk arv og Hybridarv. Single Level Inheritance har én basisklasse og én afledt klasse. Hierarkisk arv har én basisklasse og mange afledte klasser. Hybridarven er en kombination af multilevel og multipel arv. Denne artikel beskrev forskellen mellem Multiple Inheritance og Multilevel Inheritance. Forskellen mellem multiple- og multilevel-arv er, at multilevel-arv er, når en klasse nedarver fra mange basisklasser, mens multilevel-arv er, når en klasse arver fra en afledt klasse, hvilket gør den afledte klasse til en basisklasse for en ny klasse. Multilevel Inheritance er meget udbredt end Multilevel Inheritance.
Download PDF'en Multiple vs Multilevel Inheritance
Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-version her Forskel mellem multiple og multilevel inheritance