子類型必須能替換掉它們的基類型繼承
若是一組類都支持一個公共的職責,那麼它們應該從一個公共的超類繼承該職責。 若是公共的超類不存在,那麼就建立一個,並把公共的職責放入其中。畢竟,這樣一個類的有用性是肯定無疑的。 然而稍後對系統的擴展也許會假如一個新的子類,該子類極可能會以新的方式來支持一樣的職責。此時,這個新建立的超類可能會會是一個抽象類。開發
LSP是使OCP成爲可能的主要原則之一。正是子類型的可替換性才能使得使用基類型表示的模塊在無需修改的狀況下就能夠擴展。這種可替換性必須是開發人員能夠隱式依賴的。這樣,若是沒有在代碼顯式地支持基類型的契約,那麼就必需要很好地,普遍地理解這些契約。擴展