Kaip naudoti paveldėjimą C#

Kaip Naudoti Paveldejima C



Rašydami kodą objektine programavimo kalba, galime susidurti su situacijomis, kai turime pakartotinai panaudoti esamą kodą naujoje klasėje arba pridėti papildomų funkcijų prie esamos klasės. Tokiais atvejais paveldėjimas praverčia. Objektinio programavimo paveldėjimas leidžia klasėms paveldėti kitos klasės savybes ir elgesį. Šiame straipsnyje aprašomas paveldėjimo naudojimas C# ir įvairūs jo tipai.

Turinys

Kas yra paveldėjimas C#

Kaip paveldėjimas veikia C#







Paveldėjimo tipai C#



Išvada



Kas yra paveldėjimas C#

C# naudojant paveldėjimą, viena klasė gali perimti arba paveldėti kitos klasės savybes ir metodus. Kitaip tariant, tai leidžia sukurti naują klasę, pagrįstą esama klase, kuri yra žinoma kaip bazinė arba super klasė. Klasė, suformuota paėmus bazinės klasės savybes, vadinama išvestinė klasė arba poklasis.





Ši C# išvestinė klasė ne tik perima pagrindinės klasės savybes, bet ir gali pridėti savo unikalių savybių.

Kaip paveldėjimas veikia C#

C# kalboje paveldėjimas pasiekiamas naudojant dvitaškį (:) simbolis. Bazinės klasės pavadinimas apibrėžiamas po dvitaškio, o jį nurodo išvestinė klasė.



Toliau pateikiama sintaksė, skirta sukurti išvestinę klasę, kuri perima ypatybes iš pagrindinės klasės:

klasė IšvestinėClass : Bazinė klasė

{

// išvestiniai klasės nariai

}

Šiame kode, Išvestinė klasė yra išvestinės klasės pavadinimas ir Bazinė klasė yra pagrindinės klasės pavadinimas. The : simbolis rodo, kad DerivedClass paveldi iš BaseClass. „DerivedClass“ nariai gali pasiekti „BaseClass“ narius, jei jie nėra privatūs.

Paveldėjimo tipai C#

C# palaiko keturis paveldėjimo tipus: vieno, kelių lygių, hierarchinį ir daugialypį paveldėjimą. Pažvelkime į kiekvieną tipą.

Vienkartinis paveldėjimas

Pavienis paveldėjimas yra labiausiai paplitęs paveldėjimo tipas, kai išvestinė klasė perima arba paveldi tik vienos bazinės klasės savybes.

Pavyzdžiui, pateiktas kodas paaiškina klasių hierarchiją ir parodo paveldėjimo sąvokas.

naudojant Sistemą ;

naudojant Sistemą ;
klasės Automobilis
{
viešas tuštuma Pradėti ( )
{
Konsolė. WriteLine ( „Automobilis užvedė“ ) ;
}
}
klasės Tesla : Automobilis
{
viešas tuštuma Paspartinti ( )
{
Konsolė. WriteLine ( „Tesla įsibėgėja“ ) ;
}
}
klasės programa
{
statinis tuštuma Pagrindinis ( styga [ ] args )
{
Tesla myTesla = nauja Tesla ( ) ;
mano Tesla. Pradėti ( ) ; // Išvestis: automobilis užvestas
mano Tesla. Paspartinti ( ) ; // Išvestis: Tesla įsibėgėja
}
}

Aukščiau pateiktame kode Automobilių klasė yra pagrindinė klasė ir turi metodą, vadinamą Pradėti () , kuris tiesiog išspausdina pranešimą Užvedė mašina prie konsolės.

The Tesla klasė yra kilęs iš automobilių klasės ir apima visas automobilių klasės savybes. Tesla klasė prideda metodą, vadinamą Paspartinti () , kuris išspausdina pranešimą Tesla įsibėgėja prie konsolės.

The Pagrindinis () funkcija apibrėžia vadinamos Tesla klasės egzempliorių mano Tesla ir iškviečia savo Start() ir Accelerate() metodus.

Daugiapakopis paveldėjimas

Kelių lygių paveldėjimas yra tada, kai išvestinė klasė paveldi iš kitos išvestinės klasės, kuri savo ruožtu paveldi iš pagrindinės klasės.

Pavyzdžiui, šis C# kodas parodo paveldėjimą ir metodo nepaisymą klasės hierarchijoje.

naudojant Sistemą ;
klasės gyvūnas
{
viešas tuštuma Valgyk ( )
{
Konsolė. WriteLine ( 'Gyvūnų valgymas' ) ;
}
}
klasės žinduoliai : Gyvūnas
{
viešas tuštuma Bėk ( )
{
Konsolė. WriteLine ( „Žinduolių bėgimas“ ) ;
}
}
klasės šuo : Žinduoliai
{
viešas tuštuma Bark ( )
{
Konsolė. WriteLine ( 'Šuns lojimas' ) ;
}
}
klasės programa
{
statinis tuštuma Pagrindinis ( styga [ ] args )
{
Šuo myDog = naujas šuo ( ) ;
Mano šuo. Valgyk ( ) ; // Išvestis: gyvūnų valgymas
Mano šuo. Bėk ( ) ; // Išvestis: žinduolių bėgimas
Mano šuo. Bark ( ) ; // Išvestis: šuns lojimas
}
}

Čia Šuo yra išvestinė klasė, kuri paveldima iš Žinduoliai , kuris savo ruožtu paveldi iš Gyvūnas . Šunų klasė turi prieigą prie visų žinduolių ir gyvūnų savybių, metodų ir elgesio, taip pat gali apibrėžti savo unikalų metodą. Bark () .

The Gyvūnų klasė yra pagrindinė klasė ir turi metodą, vadinamą Valgyti () , kuri tiesiog atspausdina pranešimą Animal eats į pultą.

The Žinduolių klasė yra kilęs iš Animal klasės ir prideda metodą, vadinamą Vykdyti () , kuris atspausdina pranešimą žinduolis veikia į pultą.

The Šunų klasė yra kilęs iš žinduolių klasės ir prideda metodą, vadinamą Bark () , kuri į pultą atspausdina pranešimą Šuns loja.

Metodas Main() sukuria šuns klasės egzempliorių, vadinamą Mano šuo ir iškviečia savo Eat(), Run() ir Bark() metodus.

Atminkite, kad Eat() ir Run() metodai nėra apibrėžti šunų klasėje, bet yra paveldimi iš pirminių klasių. Gyvūnas ir Žinduoliai , atitinkamai. The Bark () metodas yra apibrėžtas tik šunų klasėje.

  Tekstas
Aprašymas sugeneruotas automatiškai

Hierarchinis paveldėjimas

Hierarchinio paveldėjimo atveju skirtingas išvestinių klasių skaičius paveldimas tik iš vienos bazinės klasės. Pavyzdžiui:

naudojant Sistemą ;
klasė Forma
{
viešas tuštuma Lygiosios ( )
{
Konsolė. WriteLine ( 'Piešimo forma' ) ;
}
}
klasės ratas : Figūra
{
viešas tuštuma Užpildykite ( )
{
Konsolė. WriteLine ( 'Užpildymo ratas' ) ;
}
}
klasės aikštė : Figūra
{
viešas tuštuma Spalva ( )
{
Konsolė. WriteLine ( 'Nuspalvinamas kvadratas' ) ;
}
}
klasės programa
{
statinis tuštuma Pagrindinis ( styga [ ] args )
{
Apskritimas myCircle = naujas ratas ( ) ;
myCircle. Lygiosios ( ) ; // Išvestis: piešimo forma
myCircle. Užpildykite ( ) ; // Išvestis: Apskritimo užpildymas

Kvadratas mySquare = naujoji aikštė ( ) ;
mySquare. Lygiosios ( ) ; // Išvestis: piešimo forma
mySquare. Spalva ( ) ; // Išvestis: spalvinimas kvadratu
}
}

Aukščiau pateiktame kode abu Apskritimas ir Kvadratas yra išvestinės klasės, kurios paveldi iš Figūra . Jie turi prieigą prie „Shape“ apibrėžto metodo Draw() ir taip pat gali apibrėžti savo unikalius metodus „Fill()“ ir „Color().

Čia sukūrėme apskritimo klasės objektą pavadinimu myCircle ir objektas Kvadratas pavadinta klasė mySquare . Tada skambiname į Piešti () metodas, paveldėtas iš Shape klasės, abiejuose objektuose.

Toliau mes vadiname Užpildyti () metodas myCircle, kuris būdingas Circle klasei, ir Spalva () metodas mySquare, kuris būdingas kvadratinei klasei.

Išvestis bus atspausdinta konsolėje, kaip nurodyta toliau:

  Tekstas
Aprašymas sugeneruotas automatiškai su vidutiniu patikimumu

Daugybinis paveldėjimas

Daugybinis paveldėjimas yra tada, kai išvestinė klasė paveldi iš kelių bazinių klasių. Tačiau C# nepalaiko daugybinio paveldėjimo. Norint pasiekti panašias funkcijas, C# naudoja sąsajos .

Išvada

Paveldėjimas C# leidžia klasėms paveldėti elgesį ir funkcionalumą iš bazinių klasių. Naudodami paveldėjimą galime pakartotinai panaudoti kodą ir sukurti hierarchinį srautą programos viduje. Suprasdami skirtingus paveldėjimo tipus, galite parašyti efektyvesnį ir organizuotesnį kodą, kurį lengviau prižiūrėti ir išplėsti.