C 中的黎克特制替換原則

2021-07-03 10:16:12 字數 535 閱讀 6628

黎克特制轉換原則

子類可以賦值給父類物件

父類物件可以強制轉化為對應的子類物件

黎克特制替換原則直觀理解就是"子類是父類",反過來就說不通了.

就像男人是人對的,但人是男人就不對了.

這樣明白了吧.

在物件導向思想中可知,派生類擁有基類向下公開的所有特徵,它是基類的乙個特例。 

當派生類物件賦於基類型別時,將出現以下情況:派生類的資料結構依次對應於基類的資料結構。而派生類擁有的自己的資料將不可見。

當基類的物件試圖轉換為派生型別時,將出現基類物件的資料無法依次填充完派生類的所有資料結構。這就造成了它將無法完成派生類定義的功能。編譯器將會提示甚至報錯。

這就是派生類能勝任基類功能,而基類卻無法完全勝任派生類功能的原因。

強制轉換屬於 基類到派生的過程:那是因為 設計人員知道:該基類物件的資料結構完全可以填充完派生類的結構。否則,將出現強轉錯誤。一般最好避免使用強轉!

還有,子類能夠出現在任何父類物件出現的地方不是完全正確的,父類有時也不會將自己的一些成員公開給子類。

黎克特制替換原則

黎克特制替換原則 黎克特制代換原則 liskov substitution principle lsp 物件導向設計的基本原則之一。黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍...

黎克特制替換原則

黎克特制替換原則更多的說的是子類與父類的關係的一種原則,子類必須實現父類的所有方法,所有能夠放子類的地方一定能夠放父類。但是這裡的話,我們講有的時候在我們的業務中,有的子類肯定是有個性化的特徵的,比如真槍和玩具槍,真槍能射出子彈,但是玩具槍就不能,那麼這個時候,我們或者通過抽象類,通過抽象類是我們可...

黎克特制替換原則

黎克特制替換原則,主要是乙個關於繼承的規範原則,它要求我們在軟體中寫繼承關係時,所有引用父類的地方必須能夠 透 明地使用其子類物件 子類可以實現父類所提供的抽象 方法,但不要去重寫父類已經實現的方法,或者過載父類的 構 造。要維護繼承的傳遞性,當然很多地方為這個原則打了個 比喻為 龍生龍,鳳生鳳,老...