里氏替換原則
里氏替換原則的核心思想就是:在任何父類出現的地發均可以用它的子類來替換。英文縮寫爲LSP。全稱Liskov Substitution Principle。java
其實里氏替換原則的意思就是:同一個繼承體系中的對象應該有共同的行爲特徵。里氏替換原則關注的是怎麼良好的使用繼承,也就是說不要濫用繼承,它是繼承複用的基石。在里氏替換原則中,所引用的基類的地發必須可以透明地使用子類對象。也就是說,只要父類出現的地發,子類就能出現,並且替換爲子類不會產生任何錯誤或異常。可是反過來,子類出現的地發,替換爲父類就可能出現問題了。編程
實際上,這是面向接口編程思想。java中的接口編程思想體現了里氏替換原則。java類型系統中,咱們通常都是使用聲明父類或接口類型來指向具體類的堆空間位置,而不是用具體類的類型聲明。spa
這個原則是爲了良好的繼承定義了一個規範,簡單地講,有4層含義:對象
子類必須徹底實現父類的方法。繼承
子類能夠有本身的特性。接口
覆蓋或者實現父類的方法時輸入參數能夠被放大。ip
覆寫或者實現父類的方法時輸出結果能夠被縮小。
ci