Dziedziczenie to mechanizm programowania obiektowego, w którym jedna klasa przejmuje cechy i zachowania innej klasy. Klasa dziedzicząca nazywa się klasą pochodną, a klasa, po której dziedziczy — klasą bazową.
W C# dziedziczenie zapisuje się za pomocą dwukropka : po nazwie klasy.
Składnia
public class Car : Vehicle
{
// ciało klasy
}
Taki zapis oznacza, że klasa Car dziedziczy po klasie Vehicle. Innymi słowy, Car jest szczególnym rodzajem Vehicle.
Przykład
public class Vehicle
{
public int Speed { get; set; }
public void Move()
{
Console.WriteLine("Pojazd się porusza");
}
}
public class Car : Vehicle
{
public string Brand { get; set; }
}
Obiekt klasy Car może korzystać z publicznych elementów klasy Vehicle:
Car car = new Car();
car.Speed = 80;
car.Move();
Ważne zasady
- W C# klasa może dziedziczyć bezpośrednio tylko po jednej klasie bazowej.
- Klasa pochodna nie ma dostępu do pól
privateklasy bazowej. - Elementy
publicsą dostępne z zewnątrz. - Elementy
protectedsą dostępne w klasie bazowej i klasach pochodnych. - Dziedziczenie opisuje relację typu „jest”:
CarjestVehicle.
Czego nie oznacza zapis Car : Vehicle?
Nie oznacza, że Car jest klasą podstawową. Nie oznacza też „zaprzyjaźnienia” klas — w C# nie ma mechanizmu klas zaprzyjaźnionych znanego np. z C++.
Na egzaminie zapis public class Car : Vehicle należy rozumieć jako: klasa Car dziedziczy po klasie Vehicle.