Programmering av arvegenskaper, typer, exempel

Programmering av arvegenskaper, typer, exempel

De arv i programmering objektorienterad Det är ett sätt att organisera föremål i en hierarki från det mest allmänna till det mest specifika. Det är den gadget som används för att utöka en klass i en annan klass och behålla ett analogt utförande.

På de flesta klasser får orienterade språk baserade på klassbaserade objekt, ett objekt som skapas genom arv, kallad barnobjekt, alla egenskaper och beteenden hos moderobjektet.

Enkel demonstration av arv i objektorientering. Källa: Pluke / CC0 Creative Commons CC0 1.0 Universal Public Domain

Därför är det en kvalitet som representerar förhållandet mellan olika klasser. Arvet gör att en klass kan ha samma beteende som en annan klass och utöka eller anpassa detta beteende för att ge speciella åtgärder för specifika behov.

Arv kan hjälpa till att representera objekt som har vissa skillnader och vissa likheter i hur de arbetar. All funktionalitet som objekt har gemensamt kan läggas i en basklass och sedan definiera en eller flera underklasser med sin egen personliga funktionalitet.

[TOC]

Arvegenskaper

Arv är en av de viktigaste egenskaperna hos objektorienterad programmering, som tjänar till att definiera en ny klass från befintliga klasser.

Det vill säga nya klasser av de befintliga basklasserna kan härledas, vilket lägger till nya funktioner. Du behöver inte skriva från grunden. Därför ger arv ett sätt att enkelt återanvända den befintliga koden.

Om du redan har en klass som gör nästan allt du vill kan du skapa en underklass där en del av ditt beteende delvis avbryts, eller kanske någon ny funktionalitet läggs till.

En härledd klass ärver alla metoderna i basklassen, utom följande:

Kan tjäna dig: analoga datorer: egenskaper, komponenter, typer

- Byggare, förstörare och kopieringsklassbyggare.

- Basklass överbelastade operatörer.

- Basklassvänliga funktioner.

Hierarki

Som ett släktträd gör, tjänar arv till att bilda en klasshierarki. Det är viktigt att notera att attributen som bestäms för en basklass automatiskt kommer att finnas i den härledda klassen. Dessutom kommer metoderna för basklassen att fungera för derivat.

Det sägs att en klass kommer att vara underklass för den klass som ärver. Å andra sidan kommer denna klass att vara din superklass. Det kan hänvisa till den mest generiska klassen som en basklass, eftersom den är vid basen av hierarkin.

Polymorfism

Arv är mycket populärt på vissa språk med statiska typer, eftersom det gör att programmeraren kan undvika några av de statiska typbegränsningarna.

Ett objekt som ärver från ett annat objekt betraktas som en subtyp av det objektet. Ett exempel kan vara "instruktör" och "student" -objekt, som var och en ärver "person".

Om instruktör och student är samma person kan du skriva en funktion som accepterar persontypen som en parameter och som fungerar i instruktören och studentobjekten, eftersom båda är arvingar till person.

Arvtyper

Unik arv

När en härledd klass ärver egenskaperna och beteendet hos en enda klass. Det vill säga en klass sträcker sig till en annan enda klass.

Flernivå av flernivå

Den hänvisar till gadgeten där du kan ärva från en härledd klass, vilket gör denna härledda klass 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.

Kan tjäna dig: von neumann arkitektur: ursprung, modell, hur det fungerar

Hierarkisk arv

I denna 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.

Hybridarv

Det är den resulterande arvet när någon av de tre tidigare arv (unika, hierarkiska och multilevel) kombineras).

Flera arv

Motsvarar arvsfiguren när en klass ärver mer än en superklass. Det befintliga besväret med denna typ av arv är att den härledda klassen måste bearbeta beroendet den har med två basklasser.

Å andra sidan tillåter denna typ av arv programmerare att upprätta klasser som kombinerar aspekter av flera klasser och deras motsvarande hierarkier.

Arvtyper från en basklass

Arv

När en klass härstammar 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 överkomliga direkt från en härledd klass, men du kan ha tillgång till dem genom samtal till offentliga medlemmar och skyddas från basklassen.

Skyddad arv

När en klass skapas som ärver från en skyddad superklass kommer både offentliga medlemmar och skyddade från denna superklass att bli skyddade medlemmar i den härledda klassen.

Privat arv

När en underklass skapas av en privat superklass kommer medlemmar som är offentliga och skyddade från denna superklass att bli privata medlemmar i underklassen.

Exempel

Exempel i Python

För att visa hur arvsprincipen fungerar kommer robotar eller en bättre klass av robotar att tas på Python -programmeringsspråk. För detta kommer en klass som heter RobotMedic att specificeras (Läkarbot), som härstammar från robotens superklass.

Kan tjäna dig: industriella anläggningar i Peru

Om RobotMed -klasskoden observeras kan man se att inget attribut eller metod har definierats i denna klass.

Eftersom robotklassen är en robotunderklass, ärver både __init__ och say_hi -metoden i detta fall. Att ärva dessa metoder innebär att de kan användas som om de hade definierats i robotklassen.

När en robotinstans skapas kommer funktionen __init__ också att skapa ett attribut med namn. SAY_HI -metoden kan tillämpas på "y" -robotmediska objektet, vilket framgår av resultatet av den tidigare koden.

Exempel i C++

En klass kan ärva mer än en klass, vilket innebär att den kan ärva data och funktioner för flera superklasser. För att definiera en härledd klass används en klass härledningslista för att specificera basklasserna.

En klassreferenslista i C ++ namnger en eller flera basklasser och har följande sätt: Klass Derced-klass: Åtkomstanvändare Basklass, i vilken Åtkomstanvändare är offentlig, Skyddad antingen Privat, och Basklass Det är namnet på en tidigare definierad klass. Om det inte används Åtkomstanvändare, Är tagen Privat standard.

"Form" -superklassen och dess härledda klass "rektangel" kan betraktas enligt följande:

När den föregående koden sammanställs och körs inträffar följande resultat: "Totalt areal: 35".

Referenser

  1. Dave Braunschweig (2020). Arv och polymorfism. Abus -samhälle. Tagen från: Press.En buss.gemenskap.
  2. Python Course (2020). Arv. Taget från: python-kurs.Eu.
  3. Data Mentor (2020). R arv. Taget från: Datamentor.Io.
  4. Tutorials Point (2020). C ++ arv. Taget från: TutorialSpoint.com.
  5. Nettoinformation (2020). Olika typer av arv. Taget från: nettoinformation.com.