抽象應該盡可能有多的共同**,而擁有盡可能少的資料,乙個物件從超類繼承來的**,在不使用的時候不會造成資源浪費,而資料的移動是從抽象到具體,乙個物件的資料不論是否使用都會占用資源。
繼承關係分為:類對介面的實現和類對類的繼承,只要有可能盡量使用合成,而不要使用繼承達到復用的目的
使用繼承關係:
1 子類是超類的乙個特殊體而不是超類的乙個角色,區分has-a同is-a的不同,has-a應該使用聚合關係描述,而只有is-a關係才符合繼承關係
2 永遠不會出現將子類置換為另乙個類的子類,如果不是很肯定乙個類會不會在將來變成另乙個類的子類的話,就不應該將這個類設計成當前這個超類的子類。
3 子類具有擴充套件超類的責任,而不是置換或者登出超類的責任。如果子類需要大量地置換或者登出掉超類的行為,那麼這個子類不應該成為這個超類的子類。
4 只有在分類學角度上有意義時,才可以使用繼承,不要從工具類繼承。
抽象和繼承的多型
abstract關鍵字用來修飾關鍵方法和修飾抽象類。為什麼會產生抽象類呢,那是因為在 的開發過程種,子類的種類越來越多,也越來越具體,慢慢的基本不需要使用父類的具體實現 也就是不需要new 父類後,來使用父類,而是只是把所有子類用的東西抽象出來,放到父類種,具體使用子類的實現,來實現具體的功能,就像...
Java 繼承和抽象類
繼承 對個類有共同的成員變數和成員方法,抽取到另外乙個類中 父類 再讓多個類去繼承這個父類 繼承的特點 單一繼承,只能繼承乙個父類 支援多層繼承 繼承中成員變數的特點 1.子類只能獲取父類非私有成員 2.子父類中成員變數的名字不一樣直接獲取父類的成員變數 3.子父類中成員變數的名字一樣直獲取子類的成...
繼承 介面 抽象
繼承是物件導向最顯著的乙個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力 抽象方法是一種特殊的方法 它只有宣告,而沒有具體的實現 介面泛指供別人呼叫的方法或者函式 抽象類與介面的方法 1 抽象類可以提供成員方法的實現細節,而介面中只能存在public ...