Не вызывается метод из базового типа после приведения типов? - C#

Узнай цену своей работы

Формулировка задачи:

При приведении типов от производного класса Manager к базовому классу Employee, у объекта "e" к которому был приведен Manager, вызывается метод из производного класса.
Листинг программы
  1. class Employee{
  2. public int Id { get; set; }
  3. public virtual void Foo(){
  4. Console.WriteLine("Hello Employee");
  5. }
  6. }
  7. class Manager : Employee{
  8. public string Name { get; set; }
  9. public virtual void Foo(){
  10. Console.WriteLine("Hello Manager");
  11. }
  12. }
  13. ...
  14. static void Main(){
  15. Manager m = new Manager();
  16. Employee e = m;
  17. e.Id = 10;//объект e содержит собственное свойство Id
  18. e.FirstName = "Foo";//объект e не содержит FirstName, из класса Manager
  19. e.Foo();//output: Hello Manager
  20. Console.WriteLine(e);//output: Manager
  21. }
Почему не вызывается метод из базового типа после приведения?

Решение задачи: «Не вызывается метод из базового типа после приведения типов?»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication2 {
  7.     class Program {
  8.         static void Main(string[] args) {
  9.             Manager m = new Manager();
  10.             Employee e = new Employee();
  11.  
  12.             m.Foo();
  13.             ((Employee)m).Foo();
  14.         }
  15.     }
  16.     class Employee {
  17.         public int Id { get; set; }
  18.  
  19.         public virtual void Foo() {
  20.             Console.WriteLine("Hello Employee");
  21.         }
  22.     }
  23.  
  24.     class Manager : Employee {
  25.         public string Name { get; set; }
  26.  
  27.         public new void Foo() {
  28.             Console.WriteLine("Hello Manager");
  29.         }
  30.     }
  31. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы