日期:2014-05-19  浏览次数:20910 次

抽象类不能用实例化,但可以创建子类对象引用
为什么不直接用子类,而要用抽象父类引用子类呢

------解决方案--------------------
因为你可能有N个子类,但他们有很多方法是相同的

所以一个父类定子N多公用方法,子类继承它,就可以使用父类的方法
------解决方案--------------------
比如你有
抽象类 A
B,C均是继承至它

你要定义一个函数
getSomething(A test)
这里可以向函数传递 任何 继承至A的类
但是要是你用B, C定义那就得多写很多函数了:)
------解决方案--------------------
话说多了就没有意思了,你去看看设计模式里的工厂模式就明白了。
------解决方案--------------------
用抽象类的目的就是为了代码的重用和灵活性

就像hertcloud(·£孙子兵法£·)所举的例子一样(也就是尤其方法在传递参数是),编写方法的人是无须知道调用方法的人扔进来的参数是哪个派生类的对象,这个方法都能用
------解决方案--------------------
主要就是为了增加可维护性。比如你以后要替换子类的时候可以不改变调用代码。
------解决方案--------------------
为了使用多态!