Книга: C# для профессионалов. Том II
Наследование от класса Employee
Наследование от класса Employee
Прежде чем определить класс Manager()
, необходимо внести одно маленькое изменение в классе Employee
:
public virtual decimal GetMonthlyPayment() {
return salary/12;
}
что сделает метод GetMonthlyPayment()
виртуальным (virtual
). Это способ, которым C# сообщает, что данный метод в принципе может быть переопределен.
Можно подумать, что это означает изменение базового класса, что противоречит тезису о ненужности изменения базового класса. Однако добавление ключевого слова virtual
на самом деле не является изменением, которое влечет за собой риск новых ошибок — при подходе VB необходимо было действительно переписать реализации нескольких методов. Кроме того, обычно при создании классов в C# заранее планируется, какие методы являются подходящими для переопределения. Если бы это был пример из реальной жизни, то метод GetMonthlyPayment()
почти наверняка объявлялся бы виртуальным, поэтому на самом деле можно добавить класс Manager
, не делая никаких изменений в классе Employee
.
- Пример: Employees и Managers
- Использование классов Employee и Manager
- Наследование
- Конструкторы класса Manager
- 3.4. Отношения между классами
- Конструктор Employee
- 9.7.1. Определение подкласса
- Инварианты класса и семантика ссылок
- Реализация класса бинарных деревьев
- У14.4 Наследование без классов
- Определение членов класса
- Запуск виртуального класса