[200分讨论帖]什么时候该使用继承,以及Liskov替换法则,以及IS-A,以及interface,abstract class....
讨论的源动力来自博客园的一篇文章,题目很刺激,叫做
颠覆传统-面向对象的设计思想(序章),下为地址。
http://www.cnblogs.com/zengezenge/archive/2007/07/31/837860.html
博主提出了一个看法说 不能按照教科书上IS-A的方式进行分类,而应该采取颠覆式的Act as 方式。
我的看法是博主无非就在类继承和接口实现的概念上绕来绕去没绕清楚。面向对象的继承就是is-a,而接口实现就是博主所说的act as(我觉得更好的表述是has ... ability/abilites)。
最主要还是希望大家一起讨论一下
1,什么时候应该使用继承
2,Liskov替换法则 是不是就是 IS-A
3,接口和抽象类的区别(这个问题在很多面试题上已经见多了,希望听到更高层次的观点,诸如接口和抽象类如何实现的细节区别就不要说了)
既然是讨论,而且又是200分,只要是观点都给分。
(纯粹jf的我就不给,你把我咋地?)