Вызов метода базового класса в C#
После замены тело метода родителя само не выполняется. Его можно вызвать из потомка.
Внутри метода потомка пишут base, точку и имя
метода, например base.Role.
Запишем потомка, который добавляет свою строку и затем вызывает реализацию базы:
class User {
public virtual void Role() {
Console.WriteLine("user");
}
}
class Employee : User {
public override void Role() {
Console.WriteLine("employee");
base.Role();
}
}
На объекте сотрудника выводятся обе строки по порядку:
Employee employee = new Employee();
employee.Role();
Дан код:
class User {
public virtual void SetAge(int age) {
if (age >= 0) {
Console.WriteLine("saved");
}
}
}
class Employee : User {
public override void SetAge(int age) {
if (age <= 120) {
if (age >= 0) {
Console.WriteLine("saved");
}
}
}
}
Упростите метод установки возраста в Employee:
верхнюю границу проверяйте в потомке, а проверку
неотрицательного значения поручите базовому методу.