敏捷开发的LSP原则的困惑
看了《敏捷软件开发:原则、模式与实践》的LSP原则那章,感觉很困惑,没有多少分可以给,希望能有高人解答。
困惑源于10.3.1的测试例子:
void g(Rectangle& r){ r.SetWidth(5); r.SetHeight(4);assert(r.Area() == 20);}Class Father{ String say(){ return "I'am father."; }}Class Son extends Father{ String say(){ return "I'am son."; }}void g(Father f){ assert(f.say().equals("I'am father."));}