ACAC 異常(黎克特制代換原則)

2021-10-10 22:05:15 字數 659 閱讀 6508

public

class

test

class

annoyance

extends

exception

class

sneeze

extends

annoyance

/* 9、類 examplea 繼承 exception,類 exampleb 繼承examplea。

有如下**片斷:

try catch(examplea e) catch(exception e)

輸出:examplea。(根據黎克特制代換原則[能使用父型別的地方一定能使用子型別],

抓取 examplea 型別異常的 catch 塊能夠抓住 try 塊中丟擲的 exampleb 型別的異常)

*/class

human

catch

( annoyance a )

//只有丟擲的異常小於等於catch中抓的異常型別,才能捕捉得到

//所以最後這個語句塊丟擲的異常肯定是sneeze型別的

//但是為什麼?上面的黎克特制代換原則,父類能出現的地方,子類一定出現

}catch

( sneeze s )

finally

}}

黎克特制代換原則

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

黎克特制代換原則

黎克特制代換原則 黎克特制代換原則 子型別必須能夠替換掉它們的父型別。就是說乙個軟體實體,如果使用的是乙個父類的話,那麼一定適用於其子類,而且,它覺察不出父類物件和子類物件的區別,也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。只有當子類可以替換掉父類,軟體單位的功能不收到影響時,...

黎克特制代換原則

黎克特制代換原則 子型別必須能替換掉它們的父型別.只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正的被復用,而子類也能夠在父類的基礎上增加新的行為.比如說,貓類繼承動物類,動物類擁有吃喝叫跑等行為,當某一天,我們需要狗,牛,羊也擁有類似的行為,由於它們都是繼承於動物,所以除了更改例...