java中什么情况下用interface什么情况下用继承inheritance?

来源:百度知道 编辑:UC知道 时间:2024/06/28 13:29:19

这个问题我认为不是每个人都能说得好的,就我自己的经验,我总结一句比较抽象的话:
要进行多态操作,用interface
当有特殊需求时用继承,这时可以重写方法,扩展方法等等.
以上两个之间很多还是重合的,并没有孤立.

当你对如何实现不是很清晰的时候,用interface,当你对实现很清晰的时候,用继承.
1)举个例子,你要开发一个软件系统.这个软件系统的使用者可能采用oracle数据库,sql数据库,或者access等等,客户可以选择不同的数据库.为了满足客户需求,你可以定义一个数据库接口,定义所有的公共方法.然后针对接口进行不同的实现.那么无论采用什么数据库,你都不需要改变软件.
2)当你明确客户只采用oracle数据库时,你可以采用继承.继承提供了代码的默认实现,你可以只写少量的代码就完成复杂的功能.
小结一下:
1.如果你想写出弹性的,可维护的代码,采用接口.
2.如果你仅仅想快速开发,不设计到维护的话,尽可能用继承.
3.更多的是将2着结合起来,采用抽象类.是2者的折衷吧.