2011-05-05 58 views
-1

我有6個概念需要進行建模:建模一個簡單的類層次結構,C#

車輛 汽車 卡車 路 驅動 船

明顯的有車< - 汽車,卡車,船 - 我認爲Drive可能是Vehicle上的一種抽象方法,但道路概念給我帶來了麻煩,因爲它是最合理的方法。

任何建議/意見表示讚賞。

+0

這是功課嗎? – 2011-05-05 01:24:58

+0

你可能會想通過Drive()方法。道路應該也許是一個抽象類,你可以繼承GravelRoad,ResidentialStreet,MajorStreet,Freeway或類似的類。 – David 2011-05-05 01:30:33

+0

@大衛 - 除非你想駕駛你的船。 – 2011-05-05 01:31:12

回答

1

我不想放棄太多,因爲這聽起來像功課。

但是,你正在尋找的概念是接口

接口,讓你有沒有直接關係(即不要」對象不一定有一個共同的階級,他們從Object除外)都實施相同的方法。因此,他們允許您根據其行爲處理兩種不同的事情(例如說PersonCar)(例如,兩者都可以實現IMove接口,定義Move方法)。


說了這麼多,你很可能得到不離開這裏的接口,通過考慮這些項目的使用Road,而哪些沒有。我認爲這些「道路使用」課程的共同祖先還有空間,這也從Vehicle下降。