C# Успадкування

2075 / C# / Класи / Успадкування

 

1. Можливість використовувати дані і методи базового класу

2. Пришвидшує розробку завдяки повторному використанню кода

3. Дозволяє створити архітектуру подібних класів

4. Успадковувати можна лише один клас

5. Відкриває дорогу до поліморфізму

6. Якщо клас успадковує 1000 інших класів, то буде важко щось додавати в базовий клас,

аби не створити проблеми в класах, що успадковуються

  • Я – базовий клас, батьківський клас, суперклас
  • Він – похідний клас, дочірній клас, підклас

 

class A { }
class B : A { }
class C : B { }

Модифікатори доступу:
public - надати доступ усім класам
protected - надати доступ лише похідним класам
private - закрити доступ
internal - надати доступ на лише рівні проекту (assembly)
protected internal - надати доступ на рівні збірки і похідним класам в інших проектах

class Animal
{
}

class Dog : Animal
{
}

class Cat : Animal
{
}

class Cow : Animal
{
}

Передача даних в базовий клас
public B(int odyn, int dva, int try) : base(odyn, dva, try){
}

 
Приведення типів
Cow cow = new Cow();
Animal animal = cow; // upcast
Cow tmp = (Cow)animal; // downcast

 
Перевірка сумісності
bool isCow = animal is Cow;

if (isCow) {
  Cow tmp = (Cow)animal;
}