Обращение к полю производного класса по ссылке базового класса - C#
Формулировка задачи:
Описывается базовый и производный класс. В методе Main создается объект производного класса и присваивается ссылке типа базового класса. При выводе на экран значения поля производного класса возникает ошибка (но при этом поле базового класса выводится). Подскажите пожалуйста, как сделать так, чтобы к полям объекта производного класса можно было обращаться по ссылке базового класса ? (для методов вроде бы используется virtual и override)
class Auto { public int engine = 100; } class Nissan : Auto { new public int num = 650; } class Program { static void Main(string[] args) { Auto auto; Nissan nissan = new Nissan(); auto = nissan; Console.WriteLine(auto.engine); Console.WriteLine(auto.num); // ошибка } }
Решение задачи: «Обращение к полю производного класса по ссылке базового класса»
textual
Листинг программы
class Auto { public int engine { get; set; } public Auto(int engine) { this.engine = engine; } public Auto() { this.engine = 100; } } class Nissan : Auto { public int num { get; set; } public Nissan (int num, int engine) : base(engine) { this.num = num; this.engine = engine; } public Nissan() :base() { this.num = 650; } } class Program { static void Main(string[] args) { Auto auto; Nissan nissan = new Nissan(); auto = nissan; Console.WriteLine(auto.engine); Console.WriteLine(((Nissan)auto).num); Console.ReadKey(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д