C#-perintö (esimerkein) (2023)

C#:ssa perinnön avulla voimme luoda uuden luokan olemassa olevasta luokasta. Se on olio-ohjelmoinnin (OOP) keskeinen ominaisuus.

Luokka, josta uusi luokka luodaan, tunnetaan nimellä perusluokka (emoluokka tai yläluokka). Ja uutta luokkaa kutsutaan johdetuksi luokaksi (lapsi tai alaluokka)

Johdettu luokka perii perusluokan kentät ja menetelmät. Tämä helpottaa koodin uudelleenkäytettävyyttä C#:ssa.

Kuinka suorittaa perintö C#:ssa?

C#:ssa käytämme:symboli perinnön suorittamiseen. Esimerkiksi,

luokka Animal { // kentät ja menetelmät} // Koira perii Animalclass Koira : Eläin { // Eläimen kentät ja menetelmät // Koiran kentät ja menetelmät }

Tässä perimme johdetun luokanKoiraperusluokastaEläin. TheKoiraluokka voi nyt käyttää kenttiä ja menetelmiäEläinluokkaa.

C#-perintö (esimerkein) (1)

Esimerkki: C#-perintö

käyttäen System;nimiavaruus Periytys { // perusluokka luokka Animal { julkinen merkkijonon nimi; public void display() { Console.WriteLine("Olen eläin"); } }

// johdettu luokka Animal Class Koira : Animal {

public void getName() { Console.WriteLine("Nimeni on " + nimi); } } luokka Ohjelma { static void Main(merkkijono[] args) { // johdetun luokan objekti Koira labrador = uusi Koira();

// perusluokan pääsykenttä ja menetelmä labrador.name = "Rohu"; labrador.display();

// pääsymenetelmä omasta luokasta labrador.getName(); Console.ReadLine(); } }}

Lähtö

Olen eläin Nimeni on Rohu

Yllä olevassa esimerkissä olemme johtaneet alaluokanKoirasuperluokastaEläin. Huomaa lausunnot,

labrador.name = "Kulma"; labrador.getName();

Täällä käytämmelabradorinnoutaja(Koiran esine) päästäksesinimijanäyttö()-ltaEläinluokkaa. Tämä on mahdollista, koska johdettu luokka perii kaikki perusluokan kentät ja menetelmät.

Lisäksi olemme käyttäneetnimikentän menetelmän sisälläKoiraluokkaa.

(Video) MASSIVE Abandoned Spanish Palace | Everything Left Behind for Decades!

on-suhde

C#:ssa perinnöllisyys on is-suhde. Käytämme periytymistä vain, jos kahden luokan välillä on is-suhde. Esimerkiksi,

  • KoiraonEläin
  • OmenaonHedelmä
  • AutoonAjoneuvo

Voimme johtaaKoiraalkaenEläinluokkaa. Samalla lailla,OmenaalkaenHedelmäluokka jaAutoalkaenAjoneuvoluokkaa.

suojatut jäsenet C#-perinnössä

Kun julistamme kentän tai menetelmän nimelläsuojattu, sitä voidaan käyttää vain samasta luokasta ja sen johdetuista luokista.

Esimerkki: suojatut jäsenet perinnössä

käyttäen järjestelmää;nimiavaruus Periytys { // perusluokka class Animal {

suojattu void eat() { Console.WriteLine("Voin syödä"); }

} // johdettu Animal-luokan luokka Koira : Eläin { staattinen void Main(string[] args) { Koira labrador = uusi Koira();

// pääsy suojattuun menetelmään perusluokasta labrador.eat();

Console.ReadLine(); } }}

Lähtö

voin syödä

Yllä olevassa esimerkissä olemme luoneet luokan nimeltäEläin. Luokka sisältää suojatun menetelmänsyödä().

Olemme johtaneetKoiraluokasta alkaenEläinluokkaa. Huomaa lausunto,

labrador.eat();

Koskasuojattu-menetelmää voidaan käyttää johdetuista luokista, voimme käyttääsyödä()menetelmästäKoiraluokkaa.

Perinnön tyypit

On olemassa seuraavia perintötyyppejä:

1. Yksittäinen perintö

Yksittäisessä perinnössä yksi johdettu luokka perii yhdestä perusluokasta.

(Video) Everything left behind! - Incredible ABANDONED Victorian mansion in Belgium

C#-perintö (esimerkein) (2)

2. Monitasoinen perintö

Monitasoisessa perinnössä johdettu luokka perii kannasta ja sitten sama johdettu luokka toimii toisen luokan perusluokkana.

C#-perintö (esimerkein) (3)

3. Hierarkkinen perintö

Hierarkkisessa perinnössä useat johdetut luokat perivät yhdestä perusluokasta.

C#-perintö (esimerkein) (4)

4. Moniperintö

Moniperinnössä yksi johdettu luokka perii useista perusluokista.C# ei tue moniperintöä.Voimme kuitenkin saavuttaa useita perintöjä rajapintojen kautta.

C#-perintö (esimerkein) (5)

5. Hybridiperintö

Hybridiperintö on kahden tai useamman perinnön tyypin yhdistelmä. Monitasoisen ja hierarkkisen periytymisen yhdistelmä on esimerkki hybridiperinnöstä.

C#-perintö (esimerkein) (6)

Menetelmän ohittaminen C#-perinnössä

Jos sama menetelmä on sekä perusluokassa että johdetussa luokassa, johdetun luokan menetelmä ohittaa perusluokan menetelmän. Tätä kutsutaan menetelmän ohitukseksi C#:ssa. Esimerkiksi,

käyttäen järjestelmää;nimiavaruus Periytys { // perusluokka class Animal {

public virtual void eat() { Console.WriteLine("Syön ruokaa"); }

} // johdettu Animal-luokan luokka Koira : Eläin { // Eläimen ohitusmenetelmä

public override void eat() { Console.WriteLine("Syön koiranruokaa"); }

} luokka Ohjelma { staattinen void Main(merkkijono[] args) { // johdetun luokan objekti Koira labrador = uusi Koira(); // käyttää ohitettua menetelmää labrador.eat(); } }}

Lähtö

syön koiranruokaa

Yllä olevassa esimerkissäsyödä()menetelmä on läsnä sekä perusluokassa että johdetussa luokassa.

Kun soitammesyödä()käyttämälläKoiraesinelabradorinnoutaja,

(Video) Vegan Since 1951! 32 Years Raw! A Natural Man of Many Skills; Mark Huberman

labrador.eat();

menetelmä sisälläKoirakutsutaan. Tämä johtuu menetelmästä sisälläKoiraohittaa saman menetelmän sisälläEläin.

Huomaa, olemme käyttäneetvirtuaalinenjaohittaaperusluokan ja johdetun luokan menetelmillä. Tässä,

  • virtuaalinen- mahdollistaa menetelmän ohituksen johdetun luokan toimesta
  • ohittaa- osoittaa, että menetelmä ohittaa perusluokan menetelmän

perusavainsana C#-perinnössä

Edellisessä esimerkissä näimme, että johdetun luokan menetelmä ohittaa perusluokan menetelmän.

Mutta entä jos haluamme kutsua myös perusluokan metodia?

Siinä tapauksessa käytämmepohjaavainsana kutsumaan johdetun luokan perusluokan metodia.

Esimerkki: perusavainsana C#-perinnössä

käyttäen System;nimiavaruus Periytys { // perusluokka class Animal { public virtual void eat() { Console.WriteLine("Eläimet syövät ruokaa."); } } // johdettu Animal-luokan luokka Koira : Eläin { // Eläimen ohitusmenetelmä julkinen ohitus void eat() {

// kutsua menetelmää Animal-luokasta base.eat();

Console.WriteLine("Koirat syövät koiranruokaa."); } } luokka Ohjelma { static void Main(merkkijono[] args) { Koira labrador = uusi Koira(); labrador.eat(); } }}

Lähtö

Eläimet syövät ruokaa.Koirat syövät koiranruokaa.

Yllä olevassa esimerkissäsyödä()menetelmä on läsnä molemmissa perusluokissaEläinja johdettu luokkaKoira. Huomaa lausunto,

base.eat();

Täällä olemme käyttäneetpohjaavainsana, jolla pääset menetelmäänEläinluokasta alkaenKoiraluokkaa.

Perinnön merkitys C#:ssa

Ymmärtääksemme perinnön tärkeyden, tarkastellaan tilannetta.

Oletetaan, että työskentelemme säännöllisten monikulmioiden, kuten neliöiden, suorakulmioiden ja niin edelleen, kanssa. Ja meidän on löydettävä näiden polygonien ympärysmitta syötteen perusteella.

(Video) Welcome to my World - Diana Goodman - A talk about Elvis Presley

1.Koska ympäryksen laskentakaava on yhteinen kaikille säännöllisille polygoneille, voimme luoda aSäännöllinen polygoniluokka ja menetelmälaskePerimeter()kehän laskemiseen.

class Säännöllinen polygoni { laskePerimeter() { // ympärysmitan laskeva koodi }}

2.Ja periiNeliöjaSuorakulmioluokat alkaenSäännöllinen polygoniluokkaa. Jokaisella näistä luokista on ominaisuuksia sivujen pituuden ja lukumäärän tallentamiseen, koska ne ovat erilaisia ​​kaikille polygoneille.

class Neliö : SäännöllinenPolygon { int pituus = 0; int sivut = 0;}

Välitämme arvonpituusjasivuttolaske ympärysmitta()kehän laskemiseen.

Näin perintö tekee koodistamme uudelleen käytettävän ja intuitiivisemman.

Esimerkki: Perinnön tärkeys

käyttäen järjestelmää;nimiavaruuden periytyminen { class RegularPolygon {

public void laske Kehä(int pituus, int sivut) { int tulos = pituus * sivut; Console.WriteLine("Kehä: " + tulos); }

} luokka Neliö : Säännöllinen polygoni { public int pituus = 200; julkiset int-puolet = 4; public void laskeaArea() { int pinta-ala = pituus * pituus; Console.WriteLine("Neliön pinta-ala: " + alue); } } luokka Suorakulmio : SäännöllinenPolygon { public int pituus = 100; julkinen int leveys = 200; julkiset int-puolet = 4; public void laskeaArea() { int pinta-ala = pituus * leveys; Console.WriteLine("Suorakulmion alue: " + alue); } } class Ohjelma { staattinen void Main(merkkijono[] args) { Neliö s1 = new Neliö(); s1.calculateArea();

s1.calculatePerimeter(s1.length, s1.sides);

Suorakulmio t1 = uusi Suorakulmio(); t1.laskeArea();

t1.laskeKehä(t1.pituus, t1.sivut);

} }}

Lähtö

Neliön pinta-ala: 40 000 Kehä: 800 Suorakulmion pinta-ala: 20 000 Kehä: 400

Yllä olevassa esimerkissä olemme luoneet aSäännöllinen polygoniluokka, jolla on menetelmä säännöllisen monikulmion kehän laskemiseen.

Tässä,NeliöjaSuorakulmioperiiSäännöllinen polygoni.

Kehyksen laskentakaava on yhteinen kaikille, joten olemme käyttäneet uudelleenlaskePerimeter()perusluokan menetelmä.

(Video) Enchanting Abandoned 17th-Century Chateau in France (Entirely frozen in time for 26 years)

Ja koska pinta-alan laskentakaava on erilainen eri muodoille, olemme luoneet johdettuun luokkaan erillisen menetelmän alueen laskemiseksi.

Videos

1. STRANGE NEWS of the WEEK - 62 | Mysterious | Universe | UFOs | Paranormal
(Cristina Gomez)
2. What If Ahsoka Tano TRAINED Rey Skywalker
(Pente Patrol Star Wars)
3. Nordic, Viking or Old Norse? Which one is the better term?
(Arith Härger)
4. PART 6 Music Theory for Guitarists | Modes and Scales | Music Lesson
(Perfecto De Castro)
5. Learning iOS: Create your own app with Objective-C! by Tianyu Liu
(CS50)
Top Articles
Latest Posts
Article information

Author: Pres. Lawanda Wiegand

Last Updated: 17/07/2023

Views: 5487

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Pres. Lawanda Wiegand

Birthday: 1993-01-10

Address: Suite 391 6963 Ullrich Shore, Bellefort, WI 01350-7893

Phone: +6806610432415

Job: Dynamic Manufacturing Assistant

Hobby: amateur radio, Taekwondo, Wood carving, Parkour, Skateboarding, Running, Rafting

Introduction: My name is Pres. Lawanda Wiegand, I am a inquisitive, helpful, glamorous, cheerful, open, clever, innocent person who loves writing and wants to share my knowledge and understanding with you.