設計繼承樹2

2021-06-17 23:01:18 字數 467 閱讀 8346

4、通過尋找使用共同行為的子類來找出更多抽象化的機會

我們觀察到這六種動物都有makenoise()和eat()兩種方法的共同部分,而wolf與dog可能有某些共同的行為,在lion、tiger、cat之間也是如此。

5、完成類的繼承層次

因為動物本來就有組織化的層次(界、門、綱、目、科、屬、種),我們可以用這些層次來製作有意義的類設計。我們使用貓科和犬科動物的分類來作出feline與canine這兩個類。feline包含lion、tiger、cat,canine包含wolf和dog。

我們決定canine使用共同的roam()方法,因為它們都以相同的方式移動。feline之間也是差不多。而hippo則持續使用繼承下來的roam()方法。

class feline extends animal 

}class lion extends feline

void eat()

}

C 繼承設計

1 共有繼承意味著 is a 關係 是一種 2 繼承中父類的作用域相當於巢狀在子類中。注意上面的宣告,子類中所有名為mf1 mf3 的函式都被父類中mf1 mf3所覆蓋,即使函式有不同的引數型別那個也適用,而且無論是不是虛函式也同樣適用。我們只在意其名稱。3 解決上面的預設掩蓋行為的方法是使用usi...

菱形繼承 2

如果inheritclass 1和inheritclass 2都是虛繼承baseclass,然後被inheritclass 3繼承 非虛繼承 這樣就能解決二義性問題。如果inheritclass 1或inheritclass 2只有乙個虛繼承baseclass,另乙個為普通繼承,然後被inherit...

繼承實驗2

題目 以點 point 類為基類 定義派生類 矩形類和圓類。點為直角座標點,矩形水平放置,由左下方的頂點和長寬定義。圓有圓心和半徑定義。派生類操作判斷任一座標點是在圖形內,在圖形的邊緣上,還是在圖形外。預設初始化圖形退化為點。要求包括拷貝建構函式。程式設計測試類是否正確。現來實現該實驗 includ...