59 lines
3.0 KiB
Markdown
59 lines
3.0 KiB
Markdown
---
|
||
title: Inheritance
|
||
localeTitle: наследование
|
||
---
|
||
# наследование
|
||
|
||
Наследование позволяет создать класс, который расширяет или изменяет существующий класс. Это можно использовать для создания классов, которые выводятся из других классов.
|
||
|
||
# Базовый класс и класс Derived
|
||
|
||
Это термины, используемые для классов при обращении к наследованию. Производный класс наследует базовый класс вместе с любыми переменными, функциями или процессами, которые использует базовый класс. Затем производный класс может иметь свои собственные переменные и функции наряду с теми, которые он наследует от базового класса.
|
||
|
||
Например, базовый класс «Животное» может иметь производный класс «Собака». Класс Animal будет содержать функции, относящиеся к животным в целом, а класс Dog содержит уникальные для собак особенности. Когда класс Dog наследует класс Animal, он сможет ссылаться на обе функции, относящиеся к животным и особенностям, уникальным для собак.
|
||
|
||
# Правила наследования
|
||
|
||
Наследование - это один из способов. Базовый класс не наследует функции производного класса.
|
||
|
||
Наследование транзитивно. Базовый класс «Животное» может иметь производный класс «Собака», и он может иметь производный класс «Терьер». Класс Terrier наследует как свойства класса Dog, так и класс Animal.
|
||
|
||
# Символ `:`
|
||
|
||
В C # Если `:` символ используется для обозначения наследования. Это вызывается при создании производного класса.
|
||
|
||
## пример
|
||
|
||
# Базовый класс
|
||
```
|
||
public class Animal
|
||
{
|
||
public int ID;
|
||
public string title;
|
||
public enum phylum;
|
||
public enum dietType;
|
||
|
||
public DefineAnimal(int id, string name, enum phy, enum diet)
|
||
{
|
||
this.ID = id;
|
||
this.title = name;
|
||
this.phylum = phy;
|
||
this.dietType = diet;
|
||
}
|
||
}
|
||
```
|
||
|
||
# Производный класс
|
||
```
|
||
public class Dog : Animal
|
||
{
|
||
public enum breed;
|
||
public int levelOfTraining;
|
||
|
||
public void SayWoof()
|
||
{
|
||
Console.WriteLine("Woof");
|
||
}
|
||
}
|
||
|
||
``` |