Dziedziczenie w C#

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

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 private klasy bazowej.
  • Elementy public są dostępne z zewnątrz.
  • Elementy protected są dostępne w klasie bazowej i klasach pochodnych.
  • Dziedziczenie opisuje relację typu „jest”: Car jest Vehicle.

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.