【发布时间】:2013-07-28 23:38:48
【问题描述】:
在下面的代码中,我将一个子类转换为一个基类,但 get 类型显示它仍然是子类的一个实例。这是怎么回事?
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
Car c1 = new Car { m = "M", c = "C" };
Machine m1 = (Machine)c1;
Console.WriteLine(m1.GetType());//ConsoleApplication.Car
}
}
public class Machine
{
public string m;
}
public class Car : Machine
{
public string c;
}
}
【问题讨论】:
-
如果基类是
abstract怎么办?那么拥有基类的实例是否有意义? -
@retailcoder 确实如此,或者如果您将其转换为
interface!
标签: c#