1. 里氏替換原則 Liskov Substitution Principle
Subtypes
must
besubstitutable
for theirbase types
.- subtypes(衍生型別) = 類別
- base types(基底型別) = 介面、抽象類別、基底類別
子型別必須可以替換為他的基底型別
如果你的程式有採用繼承或介面,然後建立出幾個不同的衍生型別(Subtypes)。在你的系統中只要是基底型別出現的地方,都可以用子型別來取代,而不會破壞程式原有的行為。
2. 關於LSP的基本精神
- 當實作繼承時,必須確保型別轉換後還能得到正確的結果
- 每個衍生類別都可以正確地替換為基底類別,且程式在執行時不會有異常的情況(如發生執行時期例外)
- 必須正確的實作”
繼承
“與”多型
“