热点
精准点评纠偏,逻辑框架助力创业高效闭环,reasoning_content:我们要求以技术支持工程师的口吻,写一个与技术、科技相关,关于[精准点评纠偏,逻辑框架助力,创业构建高效闭环]的标题需要简短精炼,30字以内直接输出标题nn可以想到:精准点评纠偏,逻辑框架助力,创业构建高效闭环关键词:精准、纠偏、逻辑框架、高效闭环作为技术支持工程师,可以强调技术工具、系统优化、逻辑梳理等例如:精准纠偏技术闭环,逻辑框架驱动创业高效 或者 技术支持:精准点评纠偏,逻辑框架构建高效闭环 但需要更简洁nn考虑:精准点评纠偏,逻辑框架助力,创业高效闭环但标题要一句话或者:技术赋能:精准纠偏+逻辑框架=创业高效闭环 但字数可能超nn尝试:精准纠偏,逻辑框架,创业高效闭环技术支持太生硬nn更符合技术工程师口吻:用技术支撑、系统优化等比如:精准纠偏技术逻辑,构建创业高效闭环或者:逻辑框架精准纠偏,技术支持创业闭环需要控制在30字以内,数一下nn精准纠偏技术逻辑,构建创业高效闭环 共14字,可以但缺了点评?原要求有精准点评纠偏,所以最好包含点评?但点评在技术语境中可能指代码审查或系统反馈可以改为:精准点评纠偏,逻辑框架构建创业高效闭环 共16字,但缺少助力动词也可以:精准点评纠偏,逻辑框架助力创业高效闭环 共18字或者更紧凑:精准纠偏+逻辑框架=创业高效闭环(技术支撑) 但括号可能不好nn直接输出:精准点评纠偏,逻辑框架助力创业高效闭环 19字,符合要求但作为标题,可以更科技感一点比如:技术精准纠偏,逻辑框架构建创业闭环 14字或者:精准纠偏技术赋能,逻辑框架闭环创业 14字nn考虑到技术支持工程师的口吻,可以加技术二字最终决定:精准纠偏技术逻辑,构建创业高效闭环 14字,简洁有力或者精准点评纠偏技术,逻辑框架助力闭环 14字nn我选择:精准点评纠偏,逻辑框架助力创业高效闭环 这是最直接的,也包含了所有关键词但19字,在30字以内,没问题
27 8 月 2026, 周四

密封类是Java 17正式支持的一个新特性,它让Java中类的继承可以更加细粒度的进行控制。今天就来认识一下这个新的功能。

 

密封类

在以往的Java类继承中,Java类的继承控制非常有限,仅能通过final关键字和访问控制符来控制类的继承。例如final类无法被集成;包私有类仅仅只能在该包下进行继承。

 

这显然是不够的。如果一个功能只允许出现在Phone和Pad上,不允许出现在Computer上。如果不对该功能的继承实现进行限制,开发人员将很容易滥用该功能的实现类,错误地重用一些代码。这就是密封类产生的原因。

 

密封类的声明

密封类不仅仅可以是类,也可以是接口。文章中的密封类为统称

 

密封类(接口)可以明确哪些类和接口可以对其扩展或实现。你可以通过sealed修饰符来表明某个类是密封类。但是下面是一个错误的密封类声明:

 

/** 

 * 这是一个错误的示范 

 */ 

public sealed interface SealedService { 

    

    void doSomething(); 

密封类(接口)在声明的时候必须明确可继承(实现)的范围,所以上面的写法是错误的。必须用permits子句指定允许扩展密封类的类,而且permits关键字位于extends或者implements之后。

 

简而言之,密封类明确了哪些其他类(或接口)可以扩展它们。

 

下面是正确的写法:

 

/** 

 * 这是一个正确的示范,明确了可继承的子类为{@link SealedServiceImpl} 

 * 该密封类接口同时实现了{@link SuperService} 

 */ 

public sealed interface SealedService extends SuperService permits SealedServiceImpl { 

    void doSomething(); 

 

/** 

 * 密封类子类 

 */ 

public final class SealedServiceImpl implements SealedService { 

    @Override 

    public void doSomething() { 

        System.out.println("这是一个密封类子类"); 

    } 

密封类子类的类型

在上面示例中,密封类(接口)的实现类用了final关键字标记,当然密封类的实现类还可以是密封类:

 

/** 

 * 密封类子类 

 */ 

public sealed class SealedServiceImpl implements SealedService permits SonService { 

    @Override 

    public void doSomething() { 

        System.out.println("这是一个密封类子类"); 

    } 

 

 

public final class SonService extends SealedServiceImpl { 

那么难道密封类(接口)的子类只能是final类或者密封类,就不能再扩展了?答案是否定的,只需要使用关键字non-sealed显式声明密封类的继承实现为非密封类就可以继续扩展了。

 

public non-sealed class SealedServiceImpl implements SealedService { 

    @Override 

    public void doSomething() { 

 

    } 

 

    /** 

     * 用{@code non-sealed}声明非密封类,就可以继续扩展了 

     */ 

    static class NonSealedExtend extends SealedServiceImpl { 

 

    } 

 

总结一下,密封类的子类要么是final Class;要么是sealed Class;要么是non-sealed Class。

 

permits 声明的类必须是直接子类

密封类permits关键字声明的子类必须是直接实现类,为了证明这一点我们这样写:

 

/** 

 * 错误的示范 

 */ 

public sealed interface SealedService extends SuperService permits SealedServiceImpl, SonService { 

    void doSomething(); 

 

public sealed class SealedServiceImpl implements SealedService permits SonService { 

    @Override 

    public void doSomething() { 

        System.out.println("这是一个密封类子类"); 

    } 

 

public final class SonService extends SealedServiceImpl { 

我使用SonService间接实现了SealedService,结果报错,报错信息要求必须是直接的继承关系。

 

 

 

错误的密封类继承实现

 

从上图可以看出SonService并非直接实现SealedService,这样会打破密封类的规则,所以无法编译通过。

 

密封类中permits关键字声明的子类必须是直接子类,不可间接实现。

 

密封类不支持匿名类和函数式接口

由于密封类必须明确继承实现关系,所以它不支持匿名类。

 

/** 

 * 密封类无法使用匿名类 

 * 

 * @return the sealed service 

 */ 

public SealedService sealedService(){ 

    // 提示 Anonymous classes must not extend sealed classes 

    return new SealedService() { 

        @Override 

        public void doSomething() { 

             

        } 

    }; 

同样也不支持函数式接口:

 

/** 

 * 错误的示范 

 */ 

@FunctionalInterface 

public sealed interface SealedService permits SealedServiceImpl { 

    void doSomething(); 

总结

密封类已经在Java 17中正式转正,这也是Java 17的非常重要的特性之一。对于需要细粒度控制继承关系的场景来说是非常有用的。
Java类(接口)的新种类-密封类

dawei

【声明】:邵阳站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

精准点评纠偏,逻辑框架助力创业高效闭环,reasoning_content:我们要求以技术支持工程师的口吻,写一个与技术、科技相关,关于[精准点评纠偏,逻辑框架助力,创业构建高效闭环]的标题需要简短精炼,30字以内直接输出标题nn可以想到:精准点评纠偏,逻辑框架助力,创业构建高效闭环关键词:精准、纠偏、逻辑框架、高效闭环作为技术支持工程师,可以强调技术工具、系统优化、逻辑梳理等例如:精准纠偏技术闭环,逻辑框架驱动创业高效 或者 技术支持:精准点评纠偏,逻辑框架构建高效闭环 但需要更简洁nn考虑:精准点评纠偏,逻辑框架助力,创业高效闭环但标题要一句话或者:技术赋能:精准纠偏+逻辑框架=创业高效闭环 但字数可能超nn尝试:精准纠偏,逻辑框架,创业高效闭环技术支持太生硬nn更符合技术工程师口吻:用技术支撑、系统优化等比如:精准纠偏技术逻辑,构建创业高效闭环或者:逻辑框架精准纠偏,技术支持创业闭环需要控制在30字以内,数一下nn精准纠偏技术逻辑,构建创业高效闭环 共14字,可以但缺了点评?原要求有精准点评纠偏,所以最好包含点评?但点评在技术语境中可能指代码审查或系统反馈可以改为:精准点评纠偏,逻辑框架构建创业高效闭环 共16字,但缺少助力动词也可以:精准点评纠偏,逻辑框架助力创业高效闭环 共18字或者更紧凑:精准纠偏+逻辑框架=创业高效闭环(技术支撑) 但括号可能不好nn直接输出:精准点评纠偏,逻辑框架助力创业高效闭环 19字,符合要求但作为标题,可以更科技感一点比如:技术精准纠偏,逻辑框架构建创业闭环 14字或者:精准纠偏技术赋能,逻辑框架闭环创业 14字nn考虑到技术支持工程师的口吻,可以加技术二字最终决定:精准纠偏技术逻辑,构建创业高效闭环 14字,简洁有力或者精准点评纠偏技术,逻辑框架助力闭环 14字nn我选择:精准点评纠偏,逻辑框架助力创业高效闭环 这是最直接的,也包含了所有关键词但19字,在30字以内,没问题