Paano Gamitin ang Inheritance sa C#

Paano Gamitin Ang Inheritance Sa C



Habang nagsusulat ng code sa isang object-oriented na programming language, maaari tayong makatagpo ng mga sitwasyon kung saan kailangan nating gamitin muli ang umiiral na code sa isang bagong klase o magdagdag ng karagdagang functionality sa isang kasalukuyang klase. Sa ganitong mga kaso, ang mana ay madaling gamitin. Ang inheritance sa object-oriented programming ay nagpapahintulot sa mga klase na magmana ng mga katangian at pag-uugali ng isa pang klase. Sinasaklaw ng artikulong ito ang paggamit ng inheritance sa C# at ang iba't ibang uri nito.

Talaan ng mga Nilalaman

Ano ang Inheritance sa C#

Paano Gumagana ang Mana sa C#







Mga Uri ng Pamana sa C#



Konklusyon



Ano ang Inheritance sa C#

Sa C# gamit ang inheritance, ang isang klase ay maaaring kumuha o magmana ng mga katangian at pamamaraan ng isa pang klase. Sa madaling salita, pinapayagan nito ang paglikha ng isang bagong klase batay sa isang umiiral na klase, na kilala bilang batayang klase o super klase. Ang isang klase na nabuo pagkatapos kunin ang mga katangian ng isang batayang klase ay tinatawag isang nagmula na klase o subclass.





Ang nagmula na klase na ito sa C# ay hindi lamang kumukuha ng mga katangian ng batayang klase ngunit maaari ding magdagdag ng sarili nitong natatanging mga tampok.

Paano Gumagana ang Mana sa C#

Sa C#, nakakamit ang mana sa pamamagitan ng paggamit ng colon (:) simbolo. Ang pangalan ng batayang klase ay tinukoy pagkatapos ng colon, at ito ay tinukoy ng nagmula na klase.



Ang sumusunod ay ang syntax para sa paglikha ng isang nagmula na klase na kumukuha ng mga katangian mula sa batayang klase:

klase na HinangoClass : BaseClass

{

// nagmula sa mga miyembro ng klase

}

Dito sa code na ito, DerivedClass ay ang pangalan ng nagmula na klase, at BaseClass ay ang pangalan ng batayang klase. Ang : ang simbolo ay nagpapahiwatig na ang DerivedClass ay namamana mula sa BaseClass. Maaaring ma-access ng mga miyembro ng DerivedClass ang mga miyembro ng BaseClass, kung hindi sila pribado.

Mga Uri ng Pamana sa C#

Sinusuportahan ng C# ang apat na uri ng inheritance: single, multi-level, hierarchical, at multiple inheritance. Tingnan natin ang bawat uri.

Nag-iisang Mana

Ang single inheritance ay ang pinakakaraniwang uri ng inheritance, kung saan ang isang derived class ay kumukuha o nagmamana ng mga property ng isang base class lang.

Halimbawa, ipinapaliwanag ng ibinigay na code ang hierarchy ng klase at nagpapakita ng mga konsepto ng mana.

gamit ang System ;

gamit ang System ;
klaseng Kotse
{
pampubliko walang bisa Magsimula ( )
{
Console. WriteLine ( 'Nagstart na ang sasakyan' ) ;
}
}
klase ng Tesla : kotse
{
pampubliko walang bisa Pabilisin ( )
{
Console. WriteLine ( 'Bumabilis ang Tesla' ) ;
}
}
Programa ng klase
{
static walang bisa Pangunahing ( string [ ] args )
{
Tesla myTesla = bagong Tesla ( ) ;
myTesla. Magsimula ( ) ; // Output: Umandar ang kotse
myTesla. Pabilisin ( ) ; // Output: Bumibilis ang Tesla
}
}

Sa code sa itaas, ang Klase ng kotse ay ang batayang klase at may tinatawag na pamamaraan Magsimula() , na nagpi-print lang ng mensahe Umandar na ang sasakyan sa console.

Ang klase ng Tesla ay nagmula sa klase ng Kotse, at kinukuha nito ang lahat ng katangian ng klase ng Kotse. Ang klase ng Tesla ay nagdaragdag ng isang pamamaraan na tinatawag Pabilisin() , na nagpi-print ng mensahe Bumibilis si Tesla sa console.

Ang Pangunahing() function na tumutukoy sa isang halimbawa ng klase ng Tesla na tinatawag myTesla at tinatawag ang Start() at Accelerate() na mga pamamaraan nito.

Multi-level na Mana

Ang multi-level inheritance ay kung saan nagmamana ang isang derived class mula sa isa pang derived class, na namamana naman mula sa isang base class.

Halimbawa, ang sumusunod na C# code ay nagpapakita ng inheritance at method na overriding sa isang class hierarchy.

gamit ang System ;
klase Hayop
{
pampubliko walang bisa Kumain ( )
{
Console. WriteLine ( 'Kumakain ng hayop' ) ;
}
}
klase Mammal : Hayop
{
pampubliko walang bisa Takbo ( )
{
Console. WriteLine ( 'Mammal na tumatakbo' ) ;
}
}
klaseng Aso : Mammal
{
pampubliko walang bisa tumahol ( )
{
Console. WriteLine ( 'Tumatahol na aso' ) ;
}
}
Programa ng klase
{
static walang bisa Pangunahing ( string [ ] args )
{
Aso myDog = bagong Aso ( ) ;
Aso ko. Kumain ( ) ; // Output: Pagkain ng hayop
Aso ko. Takbo ( ) ; // Output: Mammal running
Aso ko. tumahol ( ) ; // Output: Tahol ng aso
}
}

Dito aso ay isang derived class na nagmana mula sa Mammal , na namamana naman mula sa Hayop . Ang klase ng Aso ay may access sa lahat ng mga katangian, pamamaraan, at pag-uugali ng Mammal at Hayop, at maaari ding tukuyin ang sarili nitong natatanging pamamaraan Bark() .

Ang Klase ng hayop ay ang batayang klase at may tinatawag na pamamaraan Kumain() , na nagpi-print lang ng mensaheng Animal eating sa console.

Ang Mammal class ay nagmula sa klase ng Animal at nagdaragdag ng isang pamamaraan na tinatawag Run() , na nagpi-print ng mensaheng Mammal na tumatakbo sa console.

Ang Klase ng aso ay nagmula sa klase ng Mammal at nagdaragdag ng isang pamamaraan na tinatawag na Bark() , na nagpi-print ng mensaheng Dog barking sa console.

Ang paraan ng Main() ay lumilikha ng isang halimbawa ng klase ng Aso na tinatawag Aso ko at tinatawag ang mga pamamaraang Eat(), Run(), at Bark() nito.

Tandaan na ang mga pamamaraan ng Eat() at Run() ay hindi tinukoy sa klase ng Aso, ngunit minana mula sa mga pangunahing klase nito Hayop at Mammal , ayon sa pagkakabanggit. Ang Bark() Ang pamamaraan ay tinukoy lamang sa klase ng Aso.

  Text
Awtomatikong nabuo ang paglalarawan

Hierarchical Inheritance

Sa Hierarchical inheritance, ang iba't ibang bilang ng mga derived class ay minana mula lamang sa isang base class. Halimbawa:

gamit ang System ;
klase Hugis
{
pampubliko walang bisa Gumuhit ( )
{
Console. WriteLine ( 'Pagguhit ng hugis' ) ;
}
}
bilog ng klase : Hugis
{
pampubliko walang bisa Punan ( )
{
Console. WriteLine ( 'Pagpuno ng bilog' ) ;
}
}
klase Square : Hugis
{
pampubliko walang bisa Kulay ( )
{
Console. WriteLine ( 'Pakulay na parisukat' ) ;
}
}
Programa ng klase
{
static walang bisa Pangunahing ( string [ ] args )
{
Bilugan ang akingCircle = bagong Circle ( ) ;
myCircle. Gumuhit ( ) ; // Output: Pagguhit ng hugis
myCircle. Punan ( ) ; // Output: Pagpuno ng bilog

Square mySquare = bagong Square ( ) ;
mySquare. Gumuhit ( ) ; // Output: Pagguhit ng hugis
mySquare. Kulay ( ) ; // Output: Pangkulay na parisukat
}
}

Sa code sa itaas, pareho Bilog at Square ay nagmula sa mga klase na nagmana mula sa Hugis . Mayroon silang access sa Draw() method na tinukoy sa Shape at maaari ding tukuyin ang sarili nilang mga natatanging method Fill() at Color().

Dito lumikha kami ng isang bagay ng klase ng Circle na pinangalanan myCircle at isang bagay ng Square pinangalanang klase mySquare . Pagkatapos ay tinawag namin ang Gumuhit() paraan, na minana mula sa klase ng Shape, sa parehong mga bagay.

Susunod, tinawag namin ang Punan() paraan sa myCircle, na partikular sa klase ng Circle, at ang Kulay() paraan sa mySquare, na partikular sa parisukat na klase.

Ang output ay ipi-print sa console tulad ng sa ibaba:

  Text
Awtomatikong nabuo ang paglalarawan nang may katamtamang kumpiyansa

Maramihang Pamana

Ang multiple inheritance ay kung saan nagmamana ang isang derived class mula sa maraming base class. Gayunpaman, hindi sinusuportahan ng C# ang maramihang pamana. Upang makamit ang katulad na pag-andar, ginagamit ng C# mga interface .

Konklusyon

Ang inheritance sa C# ay nagbibigay-daan sa mga klase na magmana ng pag-uugali at pag-andar mula sa mga batayang klase. Gamit ang inheritance, maaari naming gamitin muli ang code at lumikha ng hierarchical flow sa loob ng program. Sa pamamagitan ng pag-unawa sa iba't ibang uri ng mana, makakasulat ang isa ng mas mahusay at organisadong code na mas madaling mapanatili at mapalawak.