Major Member
|
高手大大們好~
小弟最近在研究C# 的多型, 有些寫法在網路跟書上常看到,但是就是不曉得這
樣寫是什麼意思, 又不想自己隨便亂猜測,所以請高手大大指點, 以下是範例:
有一基底類別 CarClass
class CarClass
{
public virtual void Run()
{
Console.WriteLine("Car is running");
}
public virtual string GetName()
{
return "Car";
}
}
以及一個衍生類別BenzClass
class BenzClass:CarClass
{
public override void Run()
{
Console.WriteLine("Benz is running!");
}
public new string GetName();
{
return "Benz";
}
}
客戶端的程式碼是:
static void Main(string[] args)
{
BenzClass Benz = new BenzClass();
CarClass Base = (CarClass)Benz;
Console.WriteLine(Benz.GetName());
Console.WriteLine(Base.GetName());
Console.ReadKey();
}
問題在客戶端程式碼這一行~
CarClass Base = (CarClass)Benz;
這是指物件Base 是將Benz 物件轉換成CarClass型別得到的嗎?
所以Base現在是屬於CarClass的實作物件囉?
如果是這樣, 為什麼不寫成 CarClass Base=new CarClass() 就好?
或者根本不是這樣?
上網路找多型資料, 結果好像大家對多型解釋不一, 有的跟繼承一點關係都沒有
. 就單純函式引數個數型別不同也有人稱為多型~~
煩請高手大大解惑了~
__________________
時機歹歹 隨人顧性命
|