什么可以扩展类 - Java

问题描述 投票:1回答:1

我正在设计一个SPI,其中的继承结构是一棵树。所以你可以想象,一些类是树中的叶子节点,有些则不是。

我的问题是我想限制这个继承结构,允许开发人员只扩展特定的类(主要是叶子节点)。根据问题的定义,我不能将早期的类声明为final,否则叶节点类不能扩展它们。

我怎么能做到这一点?

java inheritance spi
1个回答
2
投票

您可以将所有父类放在与“leaf”类相同的包中,使所有这些父类在范围内包为private(不要将它们声明为public)。这将限制其可见性。

如果您很幸运使用java 9,则可以在项目中使用模块并仅导出叶类。

© www.soinside.com 2019 - 2024. All rights reserved.