我仍然用OO和C#讓自己的腳變得溼潤。我相信這是一個簡單的問題,我想我知道答案,但我想確定。在C中傳遞派生對象的集合#
如果我有一個叫Car
類和一個名爲Ford
另一類來自Car
繼承,卻又叫Mustang
另一類從Ford
類繼承。
是否可以接受/可能創建一個接受Car
對象的集合,然後當我認爲這種方法實際上傳遞給方法的Mustang
(或Ford
)對象的集合,因爲他們實際上是Car
對象的方法?
我的想法是,這應該是可能的,理解我只能訪問Car
類的Properties \ Methods。我是否基於此?
而且,如果我是正確的,你可以這樣做:你需要的Mustang
集合轉換爲Car
集合中的調用方法?
我不確定我是否理解你的答案,但是如果'Prius'繼承自'Car',並且'Mustang'繼承自'Car',那麼你就可以添加一個'Prius'或'Mustang'一個'Car'類型的列表。 – Matthew
@Matthew是的,你應該,可以。但是,如果您將一個'List'傳遞給一個參數爲'List '的方法,那麼您可以爲其添加一個'Prius',因此最終結果是一個帶有'Prius'的List 。那會很糟糕。但是,你**不能**將'List '傳遞給接受'List '的方法。這只是解釋原因。 –
Servy
也許我的問題最好像這樣......我想創建一個方法來接受一個基本類型的對象(汽車)的集合...我不在乎它是什麼類型的汽車......我只是希望它接受類型爲Car(Mustang,Prius,Corvette等)的物品清單。然後在我的方法中,我可以一般地處理每輛車,但也能分辨出它是哪種類型的車,所以如果它實際上是普銳斯,我可以告訴它做其他事情。合理? – BMT