要點
在子類中盡量不要重寫父類的方法
舊版
public class liskov
}// a類
class a
}// b類繼承了a
// 增加了乙個新功能:完成兩個數相加,然後和9求和
class b extends a
public int func2(int a, int b)
}
結果
11-3=8
1-8=-7
-----------------------
11-3=14
1-8=9
11+3+9=23
子類重寫父類的方法,例項化子類物件調的方法也是子類的
新版
public class liskov
}//建立乙個更加基礎的基類
class base
// a類
class a extends base
}// b類繼承了a
// 增加了乙個新功能:完成兩個數相加,然後和9求和
class b extends base
public int func2(int a, int b)
//如果b需要使用a類的方法,使用組合關係
private a a = new a();
//我們仍然想使用a的方法
public int func3(int a, int b)
}
繼承使兩個類的耦合性增強,當父類被修改時,可能會影響子類的功能,可以通過聚合、組合、依賴來解決問題。
簡而言之
老子出馬,乙個頂倆
裡式替換原則
以前認為裡式替換原則就是父類的出現的地方子類就能出現,和多型沒有多大的區別,這是錯誤的看法,應該再加上一句,不改變原來程式的邏輯。常見三類違背裡式替換的情況 1 子類違背父類宣告的功能 比如父類某個方法實現的是按照 排序,子類修改為按照時間排序 2 子類違背父類對輸入,輸出,異常的規定 輸入 子類對...
設計原則之里式替換原則
前言 最近降溫很厲害,走在路上呼呼的狂風刮在臉上,讓我無比懷戀家鄉的溫暖。現在要求自己早點休息,所以寫部落格的時間也從午夜變到了上午。今天就來聊一聊裡式替換原則吧 1 裡式替換原則是什麼 關於裡式這次詞語的由來,主要是因為這個原則是以為姓裡的女士提出的,所以叫里式。關於這個原則,在實際開發的時候,就...
裡式替換原則的定義
裡式替換原則主要闡述了繼承的一些原則,也就是什麼時候使用繼承,什麼時候不應該使用繼承,以及其中蘊含的原理。裡式替換原是繼承復用的基礎,它反映了基類與子類之間的關係,是對開閉原則的補充,是對實現抽象化的具體步驟的規範。裡式替換原則的作用 裡式替換原則的主要作用如下 裡式替換原則是實現開閉原則的重要方式...