public
class
rectangle
public
void
setlength
(long length)
public
long
getwidth()
public
void
setwidth
(long width)
}
public
class
square
extends
rectangle
public
void
setsidelength
(long sidelength)
@override
public
long
getlength()
@override
public
void
setlength
(long length)
@override
public
long
getwidth()
@override
public
void
setwidth
(long width)
}
public
class
liskovsubstitutiontest
system.out.
println
("resize 方法結束 width:"
+rectangle.
getwidth()
);}public
static
void
main
(string[
] args)
}
/*
* 此時**違背裡式替換原則,會導致**無限執行,直到oom。
*/
package com.evan.design.liskovsubstitution;
/** * @author evan wang
* @date 2020/6/8 19:43
*/public
inte***ce
quadrangle
public
class
rectangle
implements
quadrangle
@override
public
long
getlength()
public
void
setlength
(long length)
public
class
square
implements
quadrangle
@override
public
long
getlength()
public
void
setsidelength
(long sidelength)
}
public
class
liskovsubstitutiontest
system.out.
println
("resize 方法結束 width:"
+rectangle.
getwidth()
);}public
static
void
main
(string[
] args)
}
/**
* 當子類過載父類方法時,子類的入參範圍要大於等於父類(子類:map,父類:hashmap),
* * 當子類實現父類方法時,子類的返回值範圍要小於等於父類(子類:hashmap,父類:map),
*/
軟體設計七大原則 06 黎克特制替換原則
類圖 public class base public class child extends base public void method map map public class test 輸出 父類被執行 示例類圖 不符合黎克特制替換原則對方法入參的要求.png 示例 public clas...
設計模式七大原則 4 黎克特制替換原則
三 注意事項和細節 參考我們平時說的繼承,它有另一層含義 黎克特制替換原則定義 我們使用乙個加減法的例子來說明 建立a類,使其實現減法功能 classa public class client 執行結果為 100 50 50 現在新增乙個新功能,使兩數相加後再與100相加,且這個功能由b類實現,所以...
細說設計模式七大原則(4) 黎克特制替換原則
英文名 the liskov substitution principle,liskov 黎克特制替換原則通俗的來講就是 子類可以擴充套件父類的功能,但不能改變父類原有的功能。它包含以下4層含義 問題由來 有一功能p1,由類a完成。現需要將功能p1進行擴充套件,擴充套件後的功能為p,其中p由原有功能...