Java 15 封闭类

来源:这里教程网 时间:2026-02-17 21:24:14 作者:

Java 15 封闭类

Java 15引入了封闭类作为预览特性,它提供了对继承的精细控制。以下是关于封闭类的要点:

使用sealed关键字声明封闭类。

使用permits关键字允许声明哪个类可以成为子类型。

继承封闭类的类必须声明为封闭、非封闭或最终类。

封闭类有助于创建一个有限且可确定的继承类层次结构。

示例

考虑以下示例:

ApiTester.java

public class APITester {   public static void main(String[] args) {      Person manager = new Manager(23, "Robert");      manager.name = "Robert";      System.out.println(getId(manager));   }   public static int getId(Person person) {      if (person instanceof Employee) {         return ((Employee) person).getEmployeeId();      }       else if (person instanceof Manager) {         return ((Manager) person).getManagerId();      }      return -1;   }}abstract sealed class Person permits Employee, Manager {   String name;   String getName() {      return name;   }}final class Employee extends Person {   String name;   int id;   Employee(int id, String name){      this.id = id;      this.name = name;   }   int getEmployeeId() {      return id;   }}non-sealed class Manager extends Person {   int id;   Manager(int id, String name){      this.id = id;      this.name = name;   }   int getManagerId() {      return id;   }}

编译和运行程序

$javac -Xlint:preview --enable-preview -source 14 APITester.java$java --enable-preview APITester

输出

23

相关推荐