
什么时候用抽象类什么时候用接口
2个回答
展开全部
很有深度的问题,可是这个答案却是仁者见仁智者见智的,以下是我的一些愚见:
共同点是他们都可以实现多态。
不同点在于设计抽象类和接口的目的和使用方式有所不同,抽象类是为继承而精心设计的,接口则更多以组合的方式使用。
如果你的业务中可以抽象出一个通用的处理过程,只是某些局部传递的状态或参数有所不同,这时可以考虑使用抽象类。否则在一般的情况下,优先使用接口和组合的形式,这样使代码之间的耦合度降低。
一个比较典型的抽象类使用范例是模板模式,当然也有使用组合来实现的模板。另一个使用抽象类的情形,比如很多场合下特别是对一个声明了相当数量方法的接口,提供一个类似模板的默认实现类是很有好处的,比如spring提供的一些template,dom4j提供的VisitorSupport等。甚至在effective java里已经将这种方式提倡成一种最佳实践。
共同点是他们都可以实现多态。
不同点在于设计抽象类和接口的目的和使用方式有所不同,抽象类是为继承而精心设计的,接口则更多以组合的方式使用。
如果你的业务中可以抽象出一个通用的处理过程,只是某些局部传递的状态或参数有所不同,这时可以考虑使用抽象类。否则在一般的情况下,优先使用接口和组合的形式,这样使代码之间的耦合度降低。
一个比较典型的抽象类使用范例是模板模式,当然也有使用组合来实现的模板。另一个使用抽象类的情形,比如很多场合下特别是对一个声明了相当数量方法的接口,提供一个类似模板的默认实现类是很有好处的,比如spring提供的一些template,dom4j提供的VisitorSupport等。甚至在effective java里已经将这种方式提倡成一种最佳实践。

2024-05-14 广告
广东轻亿云软件科技有限公司在软件开发领域深耕多年,积累了丰富的经验和技术实力。我们深知API接口在现代软件开发中的重要性,因此,我们与多家业界领先的API接口提供商保持着紧密的合作关系,确保我们的产品和服务能够充分利用这些接口,为用户提供更...
点击进入详情页
本回答由广东轻亿云软件提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询