老師在之前的投影片有提到:父類別的參考可以用來記錄子類別的物件,但就無法使用子類別的特有屬性與方法了。
但有時候還是需要得到子類別特有的屬性或使用特有的方法時,這邊提供了一個寫法給大家參考(但可能很爛),也回應一些組別遇到的問題。這個方法建立在多型的概念上。
按我顯示程式碼
class Program
{
static void Main(string[] args)
{
Shape3D MyCube = new Cube(1.0);
Console.WriteLine(MyCube.GetFirstFeature().ToString());
Console.ReadKey();
// Output: 1
}
}
class Shape3D
{
/******** 方法 ********/
public virtual double GetFirstFeature()
{
return 0.0;
}
}
class Cube : Shape3D
{
/******** 屬性 ********/
double Side = 0.0;
/******** 建構子 ********/
public Cube(double p_side)
{
Side = p_side;
}
/******** 方法 ********/
public override double GetFirstFeature()
{
return Side;
}
}
這個方法不好,
回覆刪除物件導向的精神是: 父類別不可能知道子類別的參數...
其實還是有方法, 過兩個星期, 我會教大家方法