Jak używać dziedziczenia w C#

Jak używać dziedziczenia w C#
Podczas pisania kodu w języku programowania zorientowanego na obiekt, możemy napotkać sytuacje, w których musimy ponownie wykorzystać istniejący kod w nowej klasie lub dodać dodatkową funkcjonalność do istniejącej klasy. W takich przypadkach przydaje się dziedzictwo. Dziedziczenie w programowaniu obiektowym pozwala klasom dziedziczyć właściwości i zachowanie innej klasy. W tym artykule obejmuje użycie dziedziczenia w C# i jego różne typy.

Spis treści

Co to jest dziedzictwo w C#

Jak działa dziedzictwo w C#

Rodzaje dziedziczenia w C#

  • Pojedyncze dziedzictwo
  • Dziedziczenie wielopoziomowe
  • Hierarchiczne dziedzictwo
  • Wielokrotne dziedzictwo (nie obsługiwane w C#)

Wniosek

Co to jest dziedzictwo w C#

W C# za pomocą dziedzictwa jedna klasa może wziąć lub odziedziczyć właściwości i metody innej klasy. Innymi słowy, pozwala na tworzenie nowej klasy opartej na istniejącej klasie, znanej jako klasa podstawowa lub super klasa. Nazywana jest klasa utworzona po przyjęciu właściwości klasy podstawowej klasa pochodna lub podklasa.

Ta pochodna klasa w C# nie tylko przyjmuje właściwości klasy podstawowej, ale może również dodawać własne unikalne funkcje.

Jak działa dziedzictwo w C#

W C#dziedzictwo osiąga się dzięki zastosowaniu okrężnicy (:) symbol. Nazwa klasy podstawowej jest zdefiniowana po okrężnicy i jest określona przez klasę pochodną.

Poniżej znajduje się składnia do tworzenia klasy pochodnej, która przyjmuje właściwości z klasy podstawowej:

klasa pochodna: klasa podstawowa

// Oszalani członkowie klasy

Tutaj w tym kodzie, Klasy pochodnej to nazwa klasy pochodnej i Klasa podstawowa to nazwa klasy podstawowej. : Symbol wskazuje, że klasa pochodna dziedziczy po podstawach. Członkowie Diredclass mogą uzyskać dostęp do członków Baseclass, pod warunkiem, że nie są prywatni.

Rodzaje dziedziczenia w C#

C# obsługuje cztery rodzaje dziedziczenia: pojedynczy, wielopoziomowy, hierarchiczny i wielokrotny dziedzictwo. Spójrzmy na każdy typ.

Pojedyncze dziedzictwo

Pojedyncze dziedziczenie jest najczęstszym rodzajem dziedziczenia, w którym klasa pochodna przyjmuje lub dziedziczy właściwości tylko jednej klasy podstawowej.

Na przykład, Dany kod wyjaśnia hierarchię klasy i pokazuje pojęcia dziedziczenia.

za pomocą systemu;
za pomocą systemu;
samochód klasowy

public void start ()

Konsola.WriteLine („Car Start”);


klasa Tesla: samochód

public void Accelerate ()

Konsola.WriteLine („Tesla Accelerating”);


Program klasowy

Statyczne pustka główna (String [] args)

Tesla mytesla = new Tesla ();
Mytesla.Początek(); // wyjście: samochód uruchomił
Mytesla.Przyśpieszyć(); // wyjście: przyspieszanie Tesli

W powyższym kodzie Klasa samochodowa jest klasą podstawową i ma metodę o nazwie Początek(), który po prostu drukuje wiadomość Samochód zaczął do konsoli.

Klasa Tesli pochodzi z klasy samochodowej i wymaga wszystkich właściwości klasy samochodowej. Klasa Tesli dodaje metodę o nazwie Przyśpieszyć(), który drukuje wiadomość Tesla przyspieszająca do konsoli.

Główny() Funkcja definiuje instancję nazywanej klasy Tesli Mytesla i nazywa metodami start () i przyspieszania ().

Dziedziczenie wielopoziomowe

Dziedziczenie wielopoziomowe polega na tym, że klasa pochodna dziedziczy po innej klasie pochodnej, która z kolei dziedzicza po klasie podstawowej.

Na przykład, Poniższy kod C# pokazuje dziedziczenie i zastępowanie metody w hierarchii klasowej.

za pomocą systemu;
Zwierzę klasowe

Public void Eat ()

Konsola.WriteLine („Animal Eating”);


Klasa ssak: zwierzę

Public void Run ()

Konsola.WriteLine („Running ssak”);


Pies klasowy: ssak

Public Void Bark ()

Konsola.WriteLine („szczekający psa”);


Program klasowy

Statyczne pustka główna (String [] args)

Pies mydog = nowy pies ();
mój pies.Jeść(); // Wydajność: jedzenie zwierząt
mój pies.Uruchomić(); // wyjście: bieganie ssaków
mój pies.Kora(); // Wyjście: szczekanie psów

Tutaj Pies to klasa pochodna, która dziedziczy Ssak, co z kolei dziedziczy Zwierzę. Klasa psów ma dostęp do wszystkich właściwości, metod i zachowania ssaków i zwierząt, a także może zdefiniować własną unikalną metodę Kora().

Klasa zwierząt jest klasą podstawową i ma metodę o nazwie Jeść(), który po prostu drukuje przesłanie od jedzenia zwierząt do konsoli.

Klasa ssaków pochodzi z klasy zwierząt i dodaje metodę o nazwie Uruchomić(), który drukuje wiadomość ssak z biegiem do konsoli.

Klasa psów pochodzi z klasy ssaków i dodaje metodę zwaną Kora(), który drukuje szczekającego psa wiadomości do konsoli.

Metoda main () tworzy instancję klasy psa o nazwie mój pies i nazywa metody Eat (), run () i bark ().

Zauważ, że metody EAT () i RUN () nie są zdefiniowane w klasie psów, ale są dziedziczone po klasach nadrzędnych Zwierzę I Ssak, odpowiednio. Kora() Metoda jest zdefiniowana tylko w klasie psów.

Hierarchiczne dziedzictwo

W hierarchicznym dziedziczeniu różna liczba klas pochodnych jest dziedziczona tylko z jednej klasy podstawowej. Na przykład:

za pomocą systemu;
kształt klasy

Public void Draw ()

Konsola.WriteLine („Kształt rysowania”);


Koło klasowe: kształt

public void Fill ()

Konsola.WriteLine („okrąg wypełniający”);


Kwas: kształt

publiczne void Color ()

Konsola.WriteLine („Kolorowanki kwadrat”);


Program klasowy

Statyczne pustka główna (String [] args)

Circle myCircle = New Circle ();
MyCircle.Rysować(); // wyjście: kształt rysowania
MyCircle.Wypełnić(); // wyjście: okrąg wypełniający
Square Mysquare = new Square ();
Mysquare.Rysować(); // wyjście: kształt rysowania
Mysquare.Kolor(); // wyjście: kolorowanki kwadrat

W powyższym kodzie oba Koło I Kwadrat są klasami pochodnymi, które dziedziczą Kształt. Mają dostęp do metody losowania () zdefiniowanej w kształcie i mogą również definiować własne unikalne metody wypełnienia () i color ().

Tutaj stworzyliśmy obiekt klasy Circle o nazwie MyCircle i obiekt Kwadrat Klasa wymieniona Mysquare. Następnie nazywamy Rysować() metoda odziedziczona po klasie kształtu, na obu obiektach.

Następnie nazywamy Wypełnić() Metoda na mycirkle, która jest specyficzna dla klasy okręgu i Kolor() Metoda na Mysquare, która jest specyficzna dla klasy kwadratowej.

Wyjście zostanie wydrukowane do konsoli, jak poniżej:

Wiele dziedzictwa

Wielokrotne dziedziczenie to miejsce, w którym klasa pochodna dziedziczy po wielu klasach podstawowych. Jednak C# nie obsługuje wielu dziedziczeń. Aby osiągnąć podobną funkcjonalność, C# używa interfejsów.

Wniosek

Dziedziczenie w C# pozwala klasom dziedziczyć zachowanie i funkcjonalność od klas podstawowych. Korzystając z dziedzictwa, możemy ponownie wykorzystać kod i stworzyć hierarchiczny przepływ w programie. Rozumiejąc różne rodzaje dziedziczenia, można pisać bardziej wydajny i zorganizowany kod, który jest łatwiejszy w utrzymaniu i rozszerzeniu.