瀏覽單個文章
SGI
Major Member
 
SGI的大頭照
 

加入日期: Sep 2003
文章: 263
C#問題-多型 , 煩請高手大大解惑了~~

高手大大們好~

小弟最近在研究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() 就好?
或者根本不是這樣?

上網路找多型資料, 結果好像大家對多型解釋不一, 有的跟繼承一點關係都沒有
. 就單純函式引數個數型別不同也有人稱為多型~~

煩請高手大大解惑了~
     
      
__________________
時機歹歹 隨人顧性命
舊 2015-03-05, 10:50 AM #1
回應時引用此文章
SGI離線中