JAVA中一个类A既继承一个基类B,基类B本身实现了接口C,类A自己又实现了接口C,这样做的目的是什么呢?
比如Dubbo编解码Codec2涉及的类图如上所示,DubboCodec既继承ExchangeCodec,又实现了Codec2接口,然而ExchangeCodec本身的抽象基类AbstractCodec已经实现了Codec2接口。
public class DubboCodec extends ExchangeCodec implements Codec2 {}
这样做的目的是什么呢?DubboCodec并没有对Codec2中的接口进行重写。
回答
- 简单一些理解是为了方法的公用. 接口C只是定义了一些行为方法。实现可以有多个,但是有些方法可能存在通用性,因此有基类B作为父类实现一次C接口的方法, 当有另外的类想要实现接口C的时候发现有些方法和基类B一样的逻辑,只有部分接口的逻辑需要调整, 此时类A去继承B将方法覆盖即可达到目标,简化了代码量,提高了复用性 (拙见)
图我就不看了,如果你描述跟图一样的话。
直接答,目的是为了【覆盖】,多态。
类B实现了C,但类A不想使用类B实现C的行为,因此类A重新实现了接口C的行为。
以上是 JAVA中一个类A既继承一个基类B,基类B本身实现了接口C,类A自己又实现了接口C,这样做的目的是什么呢? 的全部内容, 来源链接: utcz.com/a/35910.html