Похідні Класи
Свайпніть щоб показати меню
Коли говорять, що клас є похідним від іншого класу, це означає, що він має всі поля та методи батьківського класу, а також може містити додаткові поля та методи.
Похідний клас (також називається дочірнім класом) — це клас, який успадковує властивості іншого класу. У свою чергу, базовий клас (також називається батьківським класом) — це клас, від якого відбувається успадкування.
Синтаксис для створення успадкованого класу виглядає наступним чином:
index.cs
1234567891011// Base class (parent class) public class BaseClass { // Fields and methods of the base class } // Derived class (child class) public class DerivedClass : BaseClass { // Additional fields and methods specific to the derived class }
Ось приклад із конкретним кодом:
index.cs
12345678910111213141516171819202122232425262728293031323334353637using System; // Base class (parent class) public class Animal { public string Name; public void Eat() { Console.WriteLine($"{Name} is eating."); } } // Derived class (child class) public class Dog : Animal { public void Bark() { Console.WriteLine($"{Name} is barking."); } } class ConsoleApp { static void Main() { // Creating an instance of the derived class Dog myDog = new Dog(); myDog.Name = "Buddy"; // Using inherited method from the base class myDog.Eat(); // Using method specific to the derived class myDog.Bark(); } }
У цьому прикладі Dog є похідним класом, який успадковує властивості від базового класу Animal. Клас Dog має доступ до властивості Name та методу Eat з класу Animal. Додатково, він вводить новий метод Bark, який є специфічним для класу Dog.
Як показано на діаграмі, можуть бути випадки, коли клас успадковується від класу, який вже є похідним від іншого класу:
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142434445using System; // Base class public class Animal { public void Eat() { Console.WriteLine("Animal is eating."); } } // Intermediate class inheriting from Animal public class Mammal : Animal { public void GiveBirth() { Console.WriteLine("Mammal is giving birth."); } } // Derived class inheriting from Mammal public class Dog : Mammal { public void Bark() { Console.WriteLine("Dog is barking."); } } class Program { static void Main() { Dog myDog = new Dog(); // Methods from the base class myDog.Eat(); // Methods from the intermediate class myDog.GiveBirth(); // Methods from the derived class myDog.Bark(); } }
У такому випадку клас на найвищому рівні називається суперкласом. У цьому випадку Animal є суперкласом. Такий випадок, коли існує декілька рівнів наслідування, називається багаторівневе наслідування.
У деяких мовах дозволяється, щоб клас наслідувався від декількох базових класів, таке наслідування називається множинне наслідування. У C# клас може мати лише один батьківський клас, тому множинне наслідування у C# неможливе.
1. У C#, який ключове слово або символ використовується для оголошення похідного класу?
2. У багаторівневому наслідуванні, як називається клас на вершині?
3. Чи можливе багаторівневе наслідування у C#?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат