Обращение к полю производного класса по ссылке базового класса - 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();
}
}