, x& R4 Z( {8 G使用指向基类(超类)的引用的函数,必须能够在不知道具体派生类(子类)对象类型的情况下使用它们。 ) b& t$ j4 W8 _% X- ], U1 x |$ R- E0 P* p$ K' s' Q
* W) w* H2 n9 d& f4 k
[ Function Thar Use Referennces To Base(Super) Classes Must Be Able To Use Objects Of Derived(Sub) Classes Without Knowing It ] & y% u9 F( n: n9 J2 S/ T$ j' J0 Y$ O m I4 O& @- W2 g% \) n8 \5 ^3 V8 b* n! X7 m4 @3 h
Liskov替换法则 1 J! Z3 R' V/ e
3 {, h5 H0 y5 Q" H" K" |
m. j7 b7 v. O 但是当我们在实现子类时必须要谨慎对待,以确保我们不会无意中违背了LSP。 ( a$ V/ O6 y1 F 8 C! J# }7 @) {, h+ R6 N9 J% K# W + h3 m- @+ V' F. _$ u& W8 y+ b 4 \; a) y! N: E/ J; u& S
) y. V# B* d# ?, }+ `# Z2 G 3 V9 R2 M) n& i4 e. q! V6 \6 X, Q 3.若一个函数未能满足LSP,那么可能是因为它显式地引用了超类的一些或所有子类。 : F/ d8 ?+ ]; z' k' t$ ~0 W4 J' g K" H' x
' i& J( U6 O# `: J* H: V这样的函数也违背了OCP,因为当我们创建一个新的子类时,会不得不进行代码的修改。 ( j8 t% S2 w. _% P3 a4 h H7 C2 p! q# u/ W8 ]/ m# G
+ y( t" h, ^0 M7 b: S# D$ c >>更多一些面向对象得设计法则(4)