除非一个类声明为final,否则任何人都可以派生这个类的子类。但是如果想对它有更多控制权那?指定它的具体子类,阻止被人派生父类的子类。 在Java,密封类(sealed class) 会控制哪些类可以继承它。Java15中作为一个预览特性增加了密封类,并在Java17中确定了这个特性
案例:
package com.demo;
//指定只有B,C 类可以继承A
public sealed class A permits B,C {
}
如果类D 去继承 类A则编译不会通过:
同时类A也会有编译错误: