我有一個列表中的對象集合。迭代集合中的對象並調用特定對象上的方法
基類爲car
,派生類爲Compact
,Truck
和SUV
。
在我的基類中,我有一個方法叫Drive()
。
可以說我在我的列表中有10輛汽車,而汽車#3是我想要運行Drive()
功能的卡車。如何從列表中選擇特定對象並在其上運行該方法?
我有一個列表中的對象集合。迭代集合中的對象並調用特定對象上的方法
基類爲car
,派生類爲Compact
,Truck
和SUV
。
在我的基類中,我有一個方法叫Drive()
。
可以說我在我的列表中有10輛汽車,而汽車#3是我想要運行Drive()
功能的卡車。如何從列表中選擇特定對象並在其上運行該方法?
List<Car> carList;
// fill List with values
carList[2].Drive();
愚蠢的問題;如果想要打印出我正在駕駛的汽車的索引號,我該怎麼做? – CryptoJones
@CryptoJones'carList.IndexOf(myCar)' – Rik
var cars = new List<Car>();
// Add cars....
car[2].Drive();
這仍然會調用派生方法 –
所以你想在派生類中調用基本方法而不執行in?我不認爲這是可能的(任何你爲什麼要這樣做?) – NKnusperer
是的,如果有一個方法重寫,我會想這個。我爲錯誤說了道歉。感謝您花時間回答。 – CryptoJones
爲什麼你想顯式調用基方法?那糟糕的設計讓人反感。 – Rik
這很有趣。爲什麼設計不好? Drive()可能是一個通用方法,適用於大多數繼承類,禁止一些具有專業化的類。 – Ryan
如果方法被覆蓋,那麼顯然我想要overriden方法。我是面向對象編程的新手,所以如果我使用了錯誤的術語,我很抱歉。 – CryptoJones