java项目中,继承、抽象、接口何时使用好呢?
这些天,我一直在纠结什么时候用继承、什么时候用接口、什么时候用抽象。发现他们三者很多相同的地方。
继承的话,可以共享父类的属性和方法,但要覆盖父类中部分方法。如果不用覆盖的话,那就没必要用到继承啦。如果要覆盖的话,那我也可以用接口来定义方法,到时候实现需要用到的方法也能达到同样的效果。
如果说继承可以实现共享属性,那么接口同样也可以。
最近一直在郁闷,特别请教各位大侠!
------解决方案--------------------继承建议慎用,接口和抽象类似。
------解决方案--------------------我也有这样的疑惑。我大概知道这些:
在面向对象设计时,如果几个类之间有继承关系时,可以封装为父类和子类,而接口则可以是一个子类特定的属性,这在父类那里可能是没有的。比如:有三个类,金丝猴、动物、值钱的东西。
那么金丝猴继承动物这个无疑,而它又是“值钱的东西”,这个“值钱的东西”就要用接口定义了。
抽象类我大概知道是 如果你要别人继承你的类时一定要重写一些方法时就要用抽象类。
其它的我就不知道了
------解决方案--------------------它们关键是设计理念的不同,抽象类体现的是一种模板,它与子类是一种is-a的关系,而接口体现的是一种规范、约定、能力,它与实现类之间是一种like-a的关系
------解决方案--------------------能实现接口尽量就不要用继承了
实现接口更灵活
------解决方案--------------------接口用于定义标准,Dao,Service,Action在分层的时候,都是采用接口来定义。
继承用于类的功能的扩展
接口+继承 在JDK定义出了标准,而又要自己去写大量的重复代码去完成一个功能的时候,将这些重复代码写成一个工具类,实现接口,然后自己编写类,继承这个工具类即可。(适配器开发模式)
抽象么,基本上开发项目用的不多,全在个人领悟吧。
------解决方案--------------------