zl程序教程

您现在的位置是:首页 >  其它

当前栏目

JDK15的密封性

2023-09-11 14:16:49 时间

JEP 360:Sealed Classes(Preview)密封的类和接口(预览)

通过密封的类和接口来增强 Java 编程语言,这是新的预览特性。
用于限制超类的使用,密封的类和接口限制其它可能继承或实现它们的其它类或接口。

这个特性的目标包括——允许类或接口的开发者来控制哪些代码负责实现,提供了比限制使用超类的访问修饰符声明方式更多选择,并通过支持对模式的详尽分析而支持模式匹配的未来发展。

在Java中,类层次结构通过继承实现代码的重用,父类的方法可以被许多子类继承。
但是,类层次结构的目的并不总是重用代码。有时,其目的是对域中存在的各种可能性进行建模,例如图形库支持的形状类型或金融应用程序支持的贷款类型。当以这种方式使用类层次结构时,我们可能需要限制子类集从而来简化建模。

具体使用:
因为我们引入了sealed class或interfaces,这些class或者interfaces只允许被指定的类或者interface进行扩展和实现。

使用修饰符sealed,您可以将一个类声明为密封类。密封的类使用reserved关键字permits列出可以直接扩展它的类。子类可以是最终的,非密封的或密封的。

演示结果如下:

image-20201020231136688

image-20201020231517912


image-20201020231725124