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...