2013-06-27 40 views
-8

我們有頂級動物。然後我們有哺乳動物,爬行動物,魚和鳥的亞類。這個亞類的子類是獅子,狗,蛇,蜥蜴,鯡魚,鯊魚,鴿子和鷹。 這都是課程。如果動物是天然的,水或飛行的,而且水生動物有兩種類型:淡水和鹹水,我們需要改變。例如,它們也可以是水和天然的。我想過接口,但也許不好,因爲對於鳥類來說,我們沒有像方法那樣實現什麼。也許我可以使它像動物類中的變量,然後在構造函數中將這個布爾變量。我不確定如何實現這個最好的方法。你可以幫我嗎 ?我如何實現這個層次結構?

+0

「Mb」是什麼意思? –

+0

至少提供一些您嘗試過的東西的證據。 –

+0

你沒有什麼可以實現的鳥類? srsy?那麼飛呢?襟翼?飆升? – darijan

回答

1

不,你不會爲動物的特徵製造變量,因爲這些特徵不會改變(不考慮進化)。

首先,您需要一本體面的面向對象設計書,而不是要求我們提供幫助。採取主動並做一些研究。

就目前而言,如何只執行一些基本的多態布爾功能,如IsTerrestrial()IsAquatic()等..也許讓一個枚舉AquaticType返回NoneFreshWaterSaltWaterBoth。您可以在最高級別覆蓋這些方法,以便您的子類型不必擔心。

例如,幾乎所有的魚都不是陸地的,所以Fish的子類不應該實施這種方法(Fish類應該)。同樣,大多數哺乳動物不是水生的。

這都有點主觀。在類層次結構中有很多方法來表示這些信息,但這應該給你一個開始。