Kā lietot mantojumu C#

Ka Lietot Mantojumu C



Rakstot kodu objektorientētā programmēšanas valodā, mēs varam saskarties ar situācijām, kad mums ir atkārtoti jāizmanto esošais kods jaunā klasē vai jāpievieno papildu funkcionalitāte esošai klasei. Šādos gadījumos mantojums noder. Objektorientētās programmēšanas mantošana ļauj klasēm mantot citas klases īpašības un uzvedību. Šajā rakstā ir apskatīta mantojuma izmantošana C# un tās dažādos veidos.

Satura rādītājs

Kas ir mantošana C#

Kā mantošana darbojas C#







Mantojuma veidi C#



Secinājums



Kas ir mantošana C#

C#, izmantojot mantošanu, viena klase var pārņemt vai mantot citas klases īpašības un metodes. Citiem vārdiem sakot, tas ļauj izveidot jaunu klasi, pamatojoties uz esošu klasi, kas ir pazīstama kā bāzes klase vai superklase. Tiek izsaukta klase, kas veidojas pēc bāzes klases īpašību ņemšanas atvasināta klase vai apakšklase.





Šī atvasinātā klase C# ne tikai pārņem bāzes klases īpašības, bet arī var pievienot savas unikālās funkcijas.

Kā mantošana darbojas C#

C# valodā mantošana tiek panākta, izmantojot kolu (:) simbols. Pamatklases nosaukums tiek definēts aiz kola, un to norāda atvasinātā klase.



Tālāk ir norādīta sintakse, lai izveidotu atvasinātu klasi, kas pārņem rekvizītus no bāzes klases:

klase DerivedClass : BaseClass

{

// atvasināti klases dalībnieki

}

Šeit, šajā kodā, Atvasināta klase ir atvasinātās klases nosaukums un BaseClass ir bāzes klases nosaukums. The : simbols norāda, ka DerivedClass manto no BaseClass. DerivedClass dalībnieki var piekļūt BaseClass dalībniekiem, ja tie nav privāti.

Mantojuma veidi C#

C# atbalsta četrus mantojuma veidus: viena, vairāku līmeņu, hierarhisko un vairāku mantojumu. Apskatīsim katru veidu.

Vienotais mantojums

Viena mantošana ir visizplatītākais mantojuma veids, kad atvasinātā klase pārņem vai pārmanto tikai vienas bāzes klases īpašības.

Piemēram, dotais kods izskaidro klašu hierarhiju un demonstrē mantojuma jēdzienus.

izmantojot sistēmu ;

izmantojot sistēmu ;
klases Auto
{
publiski nederīgs Sākt ( )
{
Konsole. WriteLine ( 'Auto iedarbināts' ) ;
}
}
klases Tesla : Automašīna
{
publiski nederīgs Paātrināt ( )
{
Konsole. WriteLine ( 'Tesla paātrinās' ) ;
}
}
klases programma
{
statisks nederīgs Galvenā ( virkne [ ] args )
{
Tesla myTesla = jaunā Tesla ( ) ;
mana Tesla. Sākt ( ) ; // Izvade: automašīna iedarbināta
mana Tesla. Paātrināt ( ) ; // Izvade: Tesla paātrinās
}
}

Iepriekš minētajā kodā Auto klase ir bāzes klase, un tai ir metode, ko sauc Sākt() , kas vienkārši izdrukā ziņojumu Auto iedarbināts uz konsoli.

The Tesla klase ir atvasināts no automašīnu klases, un tas aizņem visas automašīnu klases īpašības. Tesla klase pievieno metodi, ko sauc Paātrināt () , kas izdrukā ziņojumu Tesla paātrinās uz konsoli.

The Galvenais() funkcija definē izsauktās Tesla klases gadījumu mana Tesla un izsauc tās Start() un Accelerate() metodes.

Daudzlīmeņu mantošana

Daudzlīmeņu mantošana ir situācija, kad atvasinātā klase manto no citas atvasinātas klases, kura savukārt manto no bāzes klases.

Piemēram, Šis C# kods parāda mantojuma un metodes ignorēšanu klases hierarhijā.

izmantojot sistēmu ;
klases dzīvnieks
{
publiski nederīgs Ēst ( )
{
Konsole. WriteLine ( 'Dzīvnieku ēšana' ) ;
}
}
klases Zīdītājs : Dzīvnieks
{
publiski nederīgs Skrien ( )
{
Konsole. WriteLine ( 'Zīdītāju skriešana' ) ;
}
}
klases Suns : Zīdītājs
{
publiski nederīgs Miza ( )
{
Konsole. WriteLine ( 'Suņa riešana' ) ;
}
}
klases programma
{
statisks nederīgs Galvenā ( virkne [ ] args )
{
Suns myDog = jauns suns ( ) ;
Mans suns. Ēst ( ) ; // Rezultāts: Dzīvnieku ēšana
Mans suns. Skrien ( ) ; // Izvade: zīdītājs skrien
Mans suns. Miza ( ) ; // Rezultāts: Suņa riešana
}
}

Šeit Suns ir atvasināta klase, kas manto no Zīdītājs , kas savukārt manto no Dzīvnieks . Suņu klasei ir piekļuve visām zīdītāju un dzīvnieku īpašībām, metodēm un uzvedībai, kā arī var definēt savu unikālo metodi. Miza () .

The Dzīvnieku klase ir bāzes klase, un tai ir metode, ko sauc Ēst () , kas konsolei vienkārši izdrukā ziņojumu Dzīvnieks ēd.

The Zīdītāju klase ir atvasināts no Animal klases un pievieno metodi, ko sauc Palaist () , kas izdrukā ziņojumu Mammal running uz konsoli.

The Suņu klase ir atvasināts no Mammal klases un pievieno metodi, ko sauc Miza () , kas uz pults izdrukā ziņojumu Suns rej.

Metode Main() izveido Dog klases instanci, ko sauc Mans suns un izsauc tās Eat(), Run() un Bark() metodes.

Ņemiet vērā, ka Eat() un Run() metodes nav definētas Dog klasē, bet ir mantotas no tās vecākklasēm. Dzīvnieks un Zīdītājs , attiecīgi. The Miza () metode ir definēta tikai suņu klasē.

  Teksts
Apraksts ģenerēts automātiski

Hierarhiskā mantošana

Hierarhiskajā mantojumā dažādi atvasināto klašu skaits tiek mantoti tikai no vienas bāzes klases. Piemēram:

izmantojot sistēmu ;
klase Forma
{
publiski nederīgs Zīmēt ( )
{
Konsole. WriteLine ( 'Zīmēšanas forma' ) ;
}
}
klases aplis : Forma
{
publiski nederīgs Aizpildiet ( )
{
Konsole. WriteLine ( 'Aizpildīšanas aplis' ) ;
}
}
klases laukums : Forma
{
publiski nederīgs Krāsa ( )
{
Konsole. WriteLine ( 'Krāsošanas kvadrāts' ) ;
}
}
klases programma
{
statisks nederīgs Galvenā ( virkne [ ] args )
{
Aplis myCircle = jauns aplis ( ) ;
myCircle. Zīmēt ( ) ; // Izvade: zīmējuma forma
myCircle. Aizpildiet ( ) ; // Izvade: Apļa aizpildīšana

Kvadrāts mySquare = jaunais laukums ( ) ;
mySquare. Zīmēt ( ) ; // Izvade: zīmējuma forma
mySquare. Krāsa ( ) ; // Izvade: kvadrātveida krāsošana
}
}

Iepriekš minētajā kodā abi Aplis un Kvadrāts ir atvasinātas klases, kas manto no Forma . Viņiem ir pieeja Draw() metodei, kas definēta Shape, un var arī definēt savas unikālās metodes Fill() un Color().

Šeit mēs izveidojām Circle klases objektu ar nosaukumu myCircle un objekts Kvadrāts klase nosaukta mySquare . Pēc tam mēs piezvanām uz Draw () metodi, kas ir mantota no klases Shape, abiem objektiem.

Tālāk mēs saucam par Aizpildīt () metode myCircle, kas ir raksturīga Circle klasei, un Krāsa () metode mySquare, kas ir raksturīga kvadrātveida klasei.

Izvade tiks izdrukāta konsolē, kā norādīts tālāk:

  Teksts
Apraksts tiek automātiski ģenerēts ar vidēju ticamību

Daudzkārtēja mantošana

Vairāku mantojumu gadījumā atvasinātā klase manto no vairākām bāzes klasēm. Tomēr C# neatbalsta vairākkārtēju mantojumu. Lai sasniegtu līdzīgu funkcionalitāti, C# izmanto saskarnes .

Secinājums

Mantojums C# ļauj klasēm mantot uzvedību un funkcionalitāti no bāzes klasēm. Izmantojot mantojumu, mēs varam atkārtoti izmantot kodu un programmā izveidot hierarhisku plūsmu. Izprotot dažādus mantojuma veidus, var uzrakstīt efektīvāku un sakārtotāku kodu, kuru ir vieglāk uzturēt un paplašināt.