什么可以扩展类 - Java

时间:2017-12-24 17:25:27

标签: java inheritance spi

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

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

我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以将所有父类放在与" leaf"相同的包中。类,使所有这些父类在包含范围内包含私有(不要将它们声明为公共类)。这会限制他们的知名度。

如果你很幸运使用java 9,你可以在项目中使用模块,只导出叶子类。