日期:2014-05-20  浏览次数:20766 次

关于java继承的问题
小弟不才,问大家一个基础问题:

Son类继承Father类

Father obj = new Son();

Son obj = new Son();

有什么区别?
Father obj = new Son();有什么好处.

还有比如:  (接口)A  a = new AImpl(接口A的实现类) 这样新建更 AImpl a =new AImpl();有什么区别,前者有什么优点?


------解决方案--------------------
好处从你这两句代码里面是看不出来的。

要从模块重用、集成的角度来分析其好处。

比如有个函数,要求参数是List,那么你就可以根据程序自身需要来使用:ArrayList 或 LinkedList 或其他大把的List,甚至是自定义的List。提供了很好的灵活性。
------解决方案--------------------
借用别人的说法:
这个是实现多态要素之一,多态后就可以写出一段所有子类都通用的代码,当添加新的子类时,这段代码是不需要修改的。 
比如:父类Person,子类Teacher,Student,方法method()
如果使用第2行,当改用Student的时候,那么第3行也需要改变 
Person a = new Teacher(); 
//Teacher a = new Teacher(); 
a.method();