Kako uporabljati dedovanje v C#

Kako Uporabljati Dedovanje V C



Med pisanjem kode v objektno usmerjenem programskem jeziku lahko naletimo na situacije, ko moramo ponovno uporabiti obstoječo kodo v novem razredu ali dodati dodatne funkcije obstoječemu razredu. V takih primerih pride dediščina še kako prav. Dedovanje v objektno usmerjenem programiranju omogoča razredom, da podedujejo lastnosti in obnašanje drugega razreda. Ta članek obravnava uporabo dedovanja v C# in njegove različne vrste.

Kazalo

Kaj je dedovanje v C#

Kako deluje dedovanje v C#







Vrste dedovanja v C#



Zaključek



Kaj je dedovanje v C#

V C# z uporabo dedovanja lahko en razred prevzame ali podeduje lastnosti in metode drugega razreda. Z drugimi besedami, omogoča ustvarjanje novega razreda na podlagi obstoječega razreda, ki je znan kot osnovni razred ali nadrazred. Pokliče se razred, ki nastane po prevzemu lastnosti osnovnega razreda izpeljan razred ali podrazred.





Ta izpeljani razred v C# ne prevzame samo lastnosti osnovnega razreda, ampak lahko doda tudi lastne edinstvene funkcije.

Kako deluje dedovanje v C#

V C# je dedovanje doseženo z uporabo dvopičja (:) simbol. Ime osnovnega razreda je definirano za dvopičjem in ga določa izpeljani razred.



Sledi sintaksa za ustvarjanje izpeljanega razreda, ki prevzame lastnosti iz osnovnega razreda:

razred DerivedClass : Osnovni razred

{

// izpeljani člani razreda

}

Tukaj v tej kodi, Izpeljani razred je ime izpeljanega razreda in Osnovni razred je ime osnovnega razreda. The : simbol označuje, da DerivedClass deduje od BaseClass. Člani DerivedClass lahko dostopajo do članov BaseClass, če niso zasebni.

Vrste dedovanja v C#

C# podpira štiri vrste dedovanja: enojno, večnivojsko, hierarhično in večkratno dedovanje. Oglejmo si vsako vrsto.

Enotno dedovanje

Enojno dedovanje je najpogostejša vrsta dedovanja, kjer izpeljani razred prevzame ali podeduje lastnosti samo enega osnovnega razreda.

na primer podana koda pojasnjuje hierarhijo razredov in prikazuje koncepte dedovanja.

z uporabo sistema ;

z uporabo sistema ;
razred Avto
{
javnosti praznina Začetek ( )
{
Konzola. WriteLine ( 'Avto se je začel' ) ;
}
}
razred Tesla : avto
{
javnosti praznina Pospeši ( )
{
Konzola. WriteLine ( 'Teslov pospešek' ) ;
}
}
razredni program
{
statična praznina Glavni ( vrvica [ ] args )
{
Tesla moja Tesla = nova Tesla ( ) ;
moja Tesla. Začetek ( ) ; // Izhod: Avto se je zagnal
moja Tesla. Pospeši ( ) ; // Izhod: Teslov pospešek
}
}

V zgornji kodi je Razred avtomobila je osnovni razred in ima imenovano metodo Začetek() , ki preprosto natisne sporočilo Avto se je zagnal na konzolo.

The razred Tesla je izpeljan iz razreda Car in ima vse lastnosti razreda Car. Razred Tesla doda metodo, imenovano Pospeši() , ki natisne sporočilo Tesla pospešuje na konzolo.

The glavni() funkcija definira primerek razreda Tesla, imenovan moja Tesla in pokliče svoji metodi Start() in Accelerate().

Večnivojsko dedovanje

Večnivojsko dedovanje je, kjer izpeljani razred deduje iz drugega izpeljanega razreda, ta pa deduje iz osnovnega razreda.

na primer naslednja koda C# prikazuje dedovanje in preglasitev metode v hierarhiji razredov.

z uporabo sistema ;
razred Žival
{
javnosti praznina Jejte ( )
{
Konzola. WriteLine ( 'Jedo živali' ) ;
}
}
razred Sesalec : žival
{
javnosti praznina Teči ( )
{
Konzola. WriteLine ( 'Teče sesalec' ) ;
}
}
razred Pes : sesalec
{
javnosti praznina Lubje ( )
{
Konzola. WriteLine ( 'Pasji lajež' ) ;
}
}
razredni program
{
statična praznina Glavni ( vrvica [ ] args )
{
Pes moj pes = nov pes ( ) ;
moj pes. Jejte ( ) ; // Izhod: prehranjevanje živali
moj pes. Teči ( ) ; // Izhod: sesalec teče
moj pes. Lubje ( ) ; // Izhod: Pasji lajež
}
}

Tukaj pes je izpeljan razred, ki deduje od sesalec , ki pa deduje od žival . Razred Dog ima dostop do vseh lastnosti, metod in vedenja sesalcev in živali ter lahko definira tudi svojo edinstveno metodo lubje () .

The Razred živali je osnovni razred in ima imenovano metodo jesti () , ki preprosto natisne sporočilo Animal eating na konzolo.

The Razred sesalcev je izpeljan iz razreda Animal in dodaja metodo, imenovano Zaženi() , ki natisne sporočilo Teče sesalec na konzolo.

The Pasji razred je izpeljan iz razreda Mammal in dodaja metodo, imenovano lubje () , ki na konzolo izpiše sporočilo Pes laja.

Metoda Main() ustvari primerek klicanega razreda Dog moj pes in pokliče svoje metode Eat(), Run() in Bark().

Upoštevajte, da metodi Eat() in Run() nista definirani v razredu Dog, ampak sta podedovani od njegovih nadrejenih razredov. žival in sesalec , oz. The lubje () metoda je definirana samo v razredu Dog.

  Besedilo
Opis samodejno ustvarjen

Hierarhično dedovanje

Pri hierarhičnem dedovanju je različno število izpeljanih razredov podedovanih samo iz enega osnovnega razreda. Na primer:

z uporabo sistema ;
razred Oblika
{
javnosti praznina Nariši ( )
{
Konzola. WriteLine ( 'Risanje oblike' ) ;
}
}
razred Krog : oblika
{
javnosti praznina Izpolnite ( )
{
Konzola. WriteLine ( 'Polnilni krog' ) ;
}
}
razreda Square : oblika
{
javnosti praznina barva ( )
{
Konzola. WriteLine ( 'Kvadrat za barvanje' ) ;
}
}
razredni program
{
statična praznina Glavni ( vrvica [ ] args )
{
Obkroži moj krog = novi krog ( ) ;
myCircle. Nariši ( ) ; // Izhod: risanje oblike
myCircle. Izpolnite ( ) ; // Izhod: Polnilni krog

Kvadrat mySquare = novi Trg ( ) ;
mySquare. Nariši ( ) ; // Izhod: risanje oblike
mySquare. barva ( ) ; // Izhod: Barvni kvadrat
}
}

V zgornji kodi oboje Krog in kvadrat so izpeljani razredi, ki dedujejo od oblika . Imajo dostop do metode Draw(), definirane v Shape, lahko pa tudi definirajo lastni edinstveni metodi Fill() in Color().

Tukaj smo ustvarili predmet razreda Circle z imenom myCircle in predmet kvadrat razred z imenom mySquare . Nato pokličemo Nariši() metodo, ki je podedovana iz razreda Shape, na obeh objektih.

Nato pokličemo Izpolni() metoda na myCircle, ki je specifična za razred Circle, in barva() metoda na mySquare, ki je specifična za razred square.

Izhod bo natisnjen v konzolo, kot je prikazano spodaj:

  Besedilo
Opis samodejno ustvarjen s srednjo stopnjo zanesljivosti

Večkratno dedovanje

Večkratno dedovanje pomeni, da izpeljani razred deduje več osnovnih razredov. Vendar C# ne podpira večkratnega dedovanja. Za doseganje podobne funkcionalnosti C# uporablja vmesniki .

Zaključek

Dedovanje v C# omogoča razredom, da podedujejo vedenje in funkcionalnost od osnovnih razredov. Z uporabo dedovanja lahko ponovno uporabimo kodo in ustvarimo hierarhični tok znotraj programa. Z razumevanjem različnih tipov dedovanja lahko napišemo učinkovitejšo in organizirano kodo, ki jo je lažje vzdrževati in širiti.