Kako koristiti nasljeđivanje u C#

Kako Koristiti Nasljedivanje U C



Dok pišemo kod u objektno orijentiranom programskom jeziku, možemo naići na situacije u kojima moramo ponovno upotrijebiti postojeći kod u novoj klasi ili dodati dodatnu funkcionalnost postojećoj klasi. U takvim slučajevima nasljedstvo dobro dođe. Nasljeđivanje u objektno orijentiranom programiranju omogućuje klasama da naslijede svojstva i ponašanje druge klase. Ovaj članak pokriva korištenje nasljeđivanja u C# i njegove različite vrste.

Sadržaj

Što je nasljeđivanje u C#

Kako funkcionira nasljeđivanje u C#







Vrste nasljeđivanja u C#



Zaključak



Što je nasljeđivanje u C#

U C# koristeći nasljeđivanje, jedna klasa može preuzeti ili naslijediti svojstva i metode druge klase. Drugim riječima, omogućuje stvaranje nove klase na temelju postojeće klase, koja je poznata kao osnovna klasa ili super klasa. Poziva se klasa formirana nakon preuzimanja svojstava osnovne klase izvedena klasa ili podrazred.





Ova izvedena klasa u C# ne samo da preuzima svojstva osnovne klase, već može dodati i vlastite jedinstvene značajke.

Kako funkcionira nasljeđivanje u C#

U C#, nasljeđivanje se postiže korištenjem dvotočke (:) simbol. Naziv osnovne klase definiran je iza dvotočke, a specificira ga izvedena klasa.



Slijedi sintaksa za stvaranje izvedene klase koja preuzima svojstva iz osnovne klase:

klasa Izvedena klasa : Osnovna klasa

{

// izvedeni članovi klase

}

Ovdje u ovom kodu, Izvedena klasa je naziv izvedene klase, i Osnovna klasa je naziv osnovne klase. The : simbol označava da DerivedClass nasljeđuje od BaseClass. Članovi DerivedClass mogu pristupiti članovima BaseClass, pod uvjetom da nisu privatni.

Vrste nasljeđivanja u C#

C# podržava četiri vrste nasljeđivanja: jednostruko, višerazinsko, hijerarhijsko i višestruko nasljeđivanje. Pogledajmo svaku vrstu.

Jedno nasljeđivanje

Jednostruko nasljeđivanje je najčešći tip nasljeđivanja, gdje izvedena klasa preuzima ili nasljeđuje svojstva samo jedne osnovne klase.

Na primjer, navedeni kod objašnjava hijerarhiju klasa i demonstrira koncepte nasljeđivanja.

pomoću sustava ;

pomoću sustava ;
klasa Auto
{
javnost poništiti Početak ( )
{
Konzola. WriteLine ( 'Auto upalio' ) ;
}
}
razred Tesla : Automobil
{
javnost poništiti Ubrzati ( )
{
Konzola. WriteLine ( 'Tesla ubrzava' ) ;
}
}
razreda Program
{
statički poništiti Glavni ( niz [ ] args )
{
Tesla moja Tesla = novi Tesla ( ) ;
moj Tesla. Početak ( ) ; // Izlaz: Auto je pokrenut
moj Tesla. Ubrzati ( ) ; // Izlaz: Tesla ubrzava
}
}

U gornjem kodu, Klasa automobila je osnovna klasa i ima metodu tzv Početak() , koji jednostavno ispisuje poruku Auto upalio na konzolu.

The Tesla klasa izvedena je iz klase Car i preuzima sva svojstva klase Car. Klasa Tesla dodaje metodu tzv Ubrzati() , koji ispisuje poruku Tesla ubrzava na konzolu.

The Glavni() funkcija definira instancu klase Tesla tzv moj Tesla i poziva svoje metode Start() i Accelerate().

Nasljeđivanje na više razina

Nasljeđivanje na više razina je mjesto gdje izvedena klasa nasljeđuje od druge izvedene klase, koja zauzvrat nasljeđuje od osnovne klase.

Na primjer, sljedeći C# kod demonstrira nasljeđivanje i nadjačavanje metoda u hijerarhiji klasa.

pomoću sustava ;
razred Životinja
{
javnost poništiti Jesti ( )
{
Konzola. WriteLine ( 'jedenje životinja' ) ;
}
}
razred Sisavac : Životinja
{
javnost poništiti Trčanje ( )
{
Konzola. WriteLine ( 'Sisavac trči' ) ;
}
}
razred Pas : Sisavac
{
javnost poništiti Kora ( )
{
Konzola. WriteLine ( 'Lavež psa' ) ;
}
}
razreda Program
{
statički poništiti Glavni ( niz [ ] args )
{
Pas moj pas = novi Pas ( ) ;
moj pas. Jesti ( ) ; // Izlaz: jedenje životinja
moj pas. Trčanje ( ) ; // Izlaz: sisavac trči
moj pas. Kora ( ) ; // Izlaz: lavež psa
}
}

Ovdje Pas je izvedena klasa koja nasljeđuje od Sisavac , koji zauzvrat nasljeđuje od Životinja . Klasa Pas ima pristup svim svojstvima, metodama i ponašanju sisavaca i životinja, a također može definirati vlastitu jedinstvenu metodu Kora() .

The Klasa životinja je osnovna klasa i ima metodu tzv Jesti() , koji jednostavno ispisuje poruku Animal eating na konzolu.

The Klasa sisavaca izvedena je iz klase Animal i dodaje metodu tzv Trčanje() , koji ispisuje poruku Mammal running na konzolu.

The Razred pasa je izvedena iz klase Mammal i dodaje metodu tzv Kora() , koji ispisuje poruku Dog barking na konzolu.

Metoda Main() stvara instancu klase Pas tzv moj pas i poziva svoje metode Eat(), Run() i Bark().

Imajte na umu da metode Eat() i Run() nisu definirane u klasi Pas, već su naslijeđene od svojih nadređenih klasa Životinja i Sisavac , odnosno. The Kora() metoda je definirana samo u klasi Dog.

  Tekst
Opis se automatski generira

Hijerarhijsko nasljeđivanje

Kod hijerarhijskog nasljeđivanja, različiti brojevi izvedenih klasa nasljeđuju se iz samo jedne osnovne klase. Na primjer:

pomoću sustava ;
razred Oblik
{
javnost poništiti crtati ( )
{
Konzola. WriteLine ( 'Oblik za crtanje' ) ;
}
}
razreda Krug : Oblik
{
javnost poništiti Ispunite ( )
{
Konzola. WriteLine ( 'Krug za punjenje' ) ;
}
}
razreda Trg : Oblik
{
javnost poništiti Boja ( )
{
Konzola. WriteLine ( 'Kvadrat za bojanje' ) ;
}
}
razreda Program
{
statički poništiti Glavni ( niz [ ] args )
{
Okruži moj krug = novi krug ( ) ;
mojKrug. crtati ( ) ; // Izlaz: Crtanje oblika
mojKrug. Ispunite ( ) ; // Izlaz: krug za popunjavanje

Kvadrat mySquare = novi Trg ( ) ;
mojTrg. crtati ( ) ; // Izlaz: Crtanje oblika
mojTrg. Boja ( ) ; // Izlaz: bojanje kvadrata
}
}

U gornjem kodu, oboje Krug i Kvadrat su izvedene klase koje nasljeđuju od Oblik . Imaju pristup metodi Draw() definiranoj u Shapeu i također mogu definirati vlastite jedinstvene metode Fill() i Color().

Ovdje smo kreirali objekt klase Circle pod nazivom mojKrug i objekt od Kvadrat klasa imenovana mojTrg . Zatim pozivamo Crtati() metodu, koja je naslijeđena iz klase Shape, na oba objekta.

Zatim pozivamo Ispuni() metoda na myCircle, koja je specifična za klasu Circle, i Boja() metoda na mySquare, koja je specifična za kvadratnu klasu.

Izlaz će se ispisati na konzolu kao što je prikazano u nastavku:

  Tekst
Opis automatski generiran sa srednjom pouzdanošću

Višestruko nasljeđivanje

Višestruko nasljeđivanje je mjesto gdje izvedena klasa nasljeđuje više osnovnih klasa. Međutim, C# ne podržava višestruko nasljeđivanje. Za postizanje slične funkcionalnosti, C# koristi sučelja .

Zaključak

Nasljeđivanje u C# omogućuje klasama da nasljeđuju ponašanje i funkcionalnost od osnovnih klasa. Koristeći nasljeđivanje, možemo ponovno koristiti kod i stvoriti hijerarhijski tijek unutar programa. Razumijevanjem različitih tipova nasljeđivanja, može se napisati učinkovitiji i organiziraniji kod koji je lakše održavati i proširivati.