De arv i programmering objektorienterad är ett sätt att organisera objekt i en hierarki från det mest allmänna till det mest specifika. Det är gadgeten som används för att utvidga en klass till en annan klass, vilket bevarar ett analogt utförande.
På de flesta klassbaserade objektorienterade språk får ett objekt som skapas genom arv, kallat ett underobjekt, alla egenskaper och beteenden hos det överordnade objektet..
Därför är det en kvalitet som representerar förhållandet mellan olika klasser. Arv tillåter en klass att ha samma beteende som en annan klass och utvidga eller anpassa det beteendet för att ge en speciell åtgärd för specifika behov.
Arv kan hjälpa till att representera objekt som har vissa skillnader och vissa likheter i hur de fungerar. Du kan placera alla funktioner som objekten har gemensamt i en basklass och sedan definiera en eller flera underklasser med din egen anpassade funktionalitet..
Artikelindex
Arv är en av de viktigaste funktionerna i objektorienterad programmering, som används för att definiera en ny klass från befintliga klasser.
Det vill säga nya klasser kan härledas från befintliga basklasser och lägga till nya funktioner. Du behöver inte skriva från grunden. Därför är arv ett sätt att enkelt återanvända befintlig kod.
Om du redan har en klass som gör nästan allt du vill kan du skapa en underklass som delvis åsidosätter en del av dess beteende, eller kanske läggs till någon ny funktion..
En härledd klass ärver alla metoderna i basklassen, förutom följande:
- Konstruktörer, förstörare och kopiekonstruktörer av basklassen.
- Basklass överbelastade operatörer.
- Basklassvänliga funktioner.
Som ett släktträd tjänar arv till att bilda en hierarki av klasser. Det är viktigt att notera att de attribut som bestäms för en basklass automatiskt kommer att finnas i den härledda klassen. Metoderna för basklassen fungerar också för derivaten.
En klass sägs vara en underklass av den klass den ärver från. Å andra sidan kommer den här klassen att vara din superklass. Den mest generiska klassen kan kallas en basklass, eftersom den ligger i basen av hierarkin.
Arv är mycket populärt på vissa språk med statiska typer, eftersom det gör det möjligt för programmeraren att undvika några av begränsningarna för den statiska typen.
Ett objekt som ärver från ett annat objekt anses vara en undertyp av det objektet. Ett exempel kan vara objekten "instruktör" och "student", som alla ärver från "person".
Om instruktör och elev är av samma persontyp kan du skriva en funktion som accepterar persontypen som en parameter och som fungerar på instruktören och studentobjekten, eftersom båda är arvtagare till personen.
När en härledd klass ärver egenskaperna och beteendet hos en enda basklass. Det vill säga en klass sträcker sig till en annan enskild klass.
Avser gadget där du kan ärva från en härledd klass, vilket gör den härledda klassen till basklassen för en ny klass. Det vill säga det resulterar när en härledd klass skapas från en annan härledd klass.
I detta arv ärver många underklasser från en enda klass. Det vill säga det händer när en enda basklass ärvs av mer än en härledd klass.
Det är det resulterande arvet när någon av de tre föregående arven kombineras (enkel, hierarkisk och flernivå).
Det motsvarar arvsiffran när en klass ärver från mer än en superklass. Nackdelen med denna typ av arv är att den härledda klassen kommer att behöva hantera beroendet av två basklasser.
Å andra sidan tillåter denna typ av arv programmerare att bygga upp klasser som kombinerar aspekterna av flera klasser och deras motsvarande hierarkier..
När en klass härrör från en offentlig basklass blir de offentliga medlemmarna i basklassen offentliga medlemmar i den härledda klassen och de skyddade medlemmarna i basklassen blir skyddade medlemmar i den härledda klassen.
De privata medlemmarna i en superklass kommer aldrig att vara tillgängliga direkt från en härledd klass, men kan nås via samtal till allmänheten och skyddade medlemmar i basklassen..
När du skapar en klass som ärver från en skyddad superklass kommer både de offentliga och skyddade medlemmarna i denna superklass att bli skyddade medlemmar i den härledda klassen.
När man subklassar från en privat superklass kommer de offentliga och skyddade medlemmarna i denna superklass att bli privata medlemmar i underklassen.
För att visa hur arvsprincipen fungerar tar vi robotar eller en bättre klass av robotar i Pythons programmeringsspråk. För att göra detta, en klass som heter RobotMédico (LäkareRobot), som härrör från Robot-superklassen.
Om du tittar på koden för RobotMédico-klassen kan du se att inget attribut eller metod har definierats i den här klassen.
Eftersom RobotMedico-klassen är en underklass av Robot, ärver den både __init__ och say_hi-metoderna i det här fallet. Att ärva dessa metoder betyder att de kan användas som om de hade definierats i RobotMédico-klassen..
När en förekomst av RobotMédico skapas skapar funktionen __init__ också ett namnattribut. Say_hi-metoden kan tillämpas på objektet "y" hos RobotMédico, vilket kan ses i resultatet av den föregående koden.
En klass kan ärva från mer än en klass, vilket innebär att den kan ärva data och funktioner från flera superklasser. För att definiera en härledd klass används en klassderivationslista för att specificera basklasserna.
En klassderivationslista i C ++ namnger en eller flera basklasser och har följande form: klass härledd klass: åtkomstspecifikator basklass, i vilken åtkomstspecifikator det är offentlig, skyddad eller privat, Y basklass är namnet på en tidigare definierad klass. Om den inte används åtkomstspecifikator, Är tagen privat standard.
Du kan tänka på superklassen "Shape" och dess härledda klass "Rectangle" enligt följande:
När ovanstående kod sammanställs och exekveras inträffar följande utdata: "Total area: 35".
Ingen har kommenterat den här artikeln än.