2014-05-20 50 views
-1

我有一個列表中的對象集合。迭代集合中的對象並調用特定對象上的方法

基類爲car,派生類爲Compact,TruckSUV

在我的基類中,我有一個方法叫Drive()

可以說我在我的列表中有10輛汽車,而汽車#3是我想要運行Drive()功能的卡車。如何從列表中選擇特定對象並在其上運行該方法?

+1

爲什麼你想顯式調用基方法?那糟糕的設計讓人反感。 – Rik

+0

這很有趣。爲什麼設計不好? Drive()可能是一個通用方法,適用於大多數繼承類,禁止一些具有專業化的類。 – Ryan

+1

如果方法被覆蓋,那麼顯然我想要overriden方法。我是面向對象編程的新手,所以如果我使用了錯誤的術語,我很抱歉。 – CryptoJones

回答

1
List<Car> carList; 
// fill List with values 
carList[2].Drive(); 
+0

愚蠢的問題;如果想要打印出我正在駕駛的汽車的索引號,我該怎麼做? – CryptoJones

+0

@CryptoJones'carList.IndexOf(myCar)' – Rik

1
var cars = new List<Car>(); 
// Add cars.... 
car[2].Drive(); 
+0

這仍然會調用派生方法 –

+0

所以你想在派生類中調用基本方法而不執行in?我不認爲這是可能的(任何你爲什麼要這樣做?) – NKnusperer

+0

是的,如果有一個方法重寫,我會想這個。我爲錯誤說了道歉。感謝您花時間回答。 – CryptoJones