2012-12-04 76 views
-1

可能重複:
Try to describe polymorphism as easy as you canC#多態性

我也很難理解究竟多態性是什麼? 例如,如何將此代碼使用多態性

我有一個汽車類和一個名爲countprice裏面的方法,我也有一個吉普類繼承汽車類。

List<Car> carlist = new List<Car>(); 
Jeep jeepABC123 = new Jeep(800, 14, 20, 10, 3500); 
carlist.Add(jeepABC123); 
Sedan sedanGHA321 = new Sedan(600, 7, 20, 10); 
carlist.Add(sedanGHA321) 

// This code 
foreach (Bil bil in carlist) 
{ 
revenue = revenue + car.countprice(); 
} 
+0

是的,這是一個dup。閱讀由阿拉斯泰爾鏈接的帖子,如果還有一些你不明白的話,那麼重新提出你的問題。 – Todd

回答

0

這很簡單,你可以把Jeep s轉換你的Car小號

陣列也許你也可以實現Truck這會從Car繼承,那麼你的carlist中可以有兩種Jeep S和Truck小號與此同時。

多態意味着您可以將任何派生類放入爲基類聲明的變量中,這是面向對象編程的一個非常基本的概念。


我第一次真正的讚賞多態性,當我開始寫一些簡單的遊戲。

例如:

foreach(Enemy enemy in Enemies) 
{ 
    enemy.update(); 
} 
每個那些 update電話可以做不同的事情

,可以使敵人在你拍攝,這裏又可以引起敵人來改變它的位置,但他們都有一個更新呼叫,並且所有更新呼叫具有相同的簽名。

+0

所以在我的情況下,收入=收入+ car.countprice();適用於我的吉普課程? – Benny

+0

@你有沒有把'吉普'放入'carlist'中? –

+0

是的,我做了=)我想我現在明白了 – Benny