C# Успадкування
Успадкування (похідний і базовий клас)
У C# можна успадкувати поля та методи від одного класу до іншого. Ми групуємо «концепцію успадкування» у дві категорії:
- Похідний клас (дочірній) — клас, який успадковує інший клас
- Базовий клас (батьківський) — клас, який успадковується
Щоб успадкувати від класу, використовуйте символ двокрапки :
.
У прикладі нижче клас Car
(дочірній) успадковує поля та методи від Vehicle
класу (батьківського):
Приклад
class Vehicle // base class (parent)
{
public string brand = "Ford"; // Vehicle поле
public void honk() // Vehicle метод
{
Console.WriteLine("Tuut, tuut!");
}
}
class Car : Vehicle // похідний клас (дочірній)
{
public string modelName = "Mustang"; // Car поле
}
class Program
{
static void Main(string[] args)
{
// Створити об’єкт myCar
Car myCar = new Car();
// Викликати метод honk() (з класу Vehicle) для об’єкта myCar
myCar.honk();
// Відобразити значення поля brand (з класу Vehicle) та значення modelName з класу Car
Console.WriteLine(myCar.brand + " " + myCar.modelName);
}
}
Навіщо і коли використовувати "Наслідування"?
Це корисно для повторного використання коду: повторно використовуйте поля та методи існуючого класу під час створення нового класу.
Порада: також перегляньте наступний розділ, C# Поліморфізм, який використовує успадковані методи для виконання різних завдань.
Ключове слово sealed
Якщо ви не хочете, щоб інші класи успадковували клас, використовуйте ключове слово sealed
:
Якщо ви спробуєте отримати доступ до sealed
класу, C# створить помилку:
sealed class Vehicle
{
...
}
class Car : Vehicle
{
...
}
Повідомлення про помилку буде приблизно таким:
'Car': cannot derive from sealed type 'Vehicle'