【发布时间】:2015-10-26 05:08:00
【问题描述】:
我有一个公共课程A。此类将用于客户端和服务器端。但在服务器端,它会暴露较少的 API(不存在客户端环境特定的 API)。因此,我将两种环境共有的核心 API 提取到一个抽象的隐藏超类 ASuper 中。这就是将A 拆分为A 和ASuper。
我在这样做时面临的问题是,许多核心 API 返回 <T extends A> 类型的对象。因此,超类引用其子类,这违反了继承原则。我不想覆盖 A 中的每个这样的 API(由于这些 API 的数量很大)。我也不想将方法签名更改为<T extends ASuper>。有人可以帮我解决这个问题吗?
【问题讨论】:
-
散文太多。尝试创建一个重现您的问题的最小示例。 stackoverflow.com/help/mcve
-
除非您发布一些代码,否则没有人能比您上次提出这个问题时更能帮助您。
标签: java inheritance design-patterns