Хранение потомка в переменной базы в C#
Переменная может иметь тип базы, хотя указывает на объект потомка.
Статический тип User скрывает методы, которые
есть только у Student. Через такую переменную
можно вызвать члены, объявленные в базовом классе.
Запишем оба класса:
class User {
public void Greet() {
Console.WriteLine("user");
}
}
class Student : User {
public void ShowGrade() {
Console.WriteLine("grade");
}
}
Присваивание потомка переменной базы:
Student student = new Student();
User user = student;
user.Greet();
// user.ShowGrade(); // ошибка: метода нет у User
Создайте объект Employee,
сохраните его в переменной User
и вызовите общий метод, объявленный в базе.