JAV - 密封类

发布时间 2023-10-15 11:27:32作者: chuangzhou

除非一个类声明为final,否则任何人都可以派生这个类的子类。但是如果想对它有更多控制权那?指定它的具体子类,阻止被人派生父类的子类。 在Java,密封类(sealed class) 会控制哪些类可以继承它。Java15中作为一个预览特性增加了密封类,并在Java17中确定了这个特性

案例:

package com.demo;

//指定只有B,C 类可以继承A
public  sealed class A  permits B,C {
}

如果类D 去继承 类A则编译不会通过:

同时类A也会有编译错误: