我知道Superclass可以存储子类的实例,
例如:
public class Subclass
{
private int color;
public Subclass()
{
color = "red";
}
}
Superclass v = new Subclass();
超类不了解子类中的方法,变量等, 然后施展它,让你可以访问这些。
这是如何运作的?
示例:
Vechicle v = new Car();
Car c = (Car) v;
Consoel.WriteLine(c.color);
Output:
red
答案 0 :(得分:1)
这并不像你指定的那么简单。
如果在Car
的构造函数中更改了颜色,则它将与红色不同。
此外还有virtual methods的概念。
以下不是继承而是强制转换。 Inheritance msdn
Car c = (Car) v;
所有继承的类型都可以类型转换为基类型,但不是必需的。 此外,还可以进行用户定义的转换以及辅助类的转换 Casting and Type Conversion - MSDN