写点什么

超新概念出炉,JDK17 的封闭类使用解析

作者:知识浅谈
  • 2022 年 8 月 13 日
    吉林
  • 本文字数:659 字

    阅读完需:约 2 分钟

超新概念出炉,JDK17的封闭类使用解析

🍁 作者:知识浅谈,CSDN 签约讲师,CSDN 博客专家,华为云云享专家,阿里云星级博主

📌 擅长领域:全栈工程师、爬虫、ACM 算法

💒 公众号:知识浅谈

🔥 联系方式 vx:zsqtcc


🤞JDK17 的封闭类使用解析总结🤞


正菜来了⛳⛳⛳

🎈封闭类概念

  • 首先:按照往常的使用的类继承的方法,我们可以通过继承(extend)来实现类的能力复用、扩展与增强。但有的时候,有些能力我们不希望被继承了去做一些不可预知的扩展。所以,我们需要对继承关系有一些限制的控制手段。而密封类的作用就是限制类的继承。

  • 其次:针对限制继承的做法,final 修饰类,这样类就无法被继承了,JDK17 推出了封闭类这个概念可以在不用 final 的情况下,对类继承做相应的限制。

🎈实战操作

📐第 1 步: 父类 Human


使用 sealed 修饰父类并用 permits 修饰能继承该类的子类来进行限制。


public sealed class Human  permits Man,Women{}
复制代码


📐第 2 步 :子类 Man


使用 final 或者 non-sealed 修饰继承封闭父类的子类


public final class Man extends Human { //密封子类 }public  non-sealed class Women extends Human permits Girl{//密封子类 }
复制代码


📐第 3 步:孙子类


在其父类和祖父类为 sealed 修饰的情况下,孙子类可以继承父类,并用 final 或者 non-sealed 修饰


public sealed class Women extends Human permits Girl{ //父类}
public final class Girl extends Women { //孙子类}
复制代码

🍚总结

以上就是封闭父类和封闭子类以及封闭祖父类的用法,需要注意的是,在子类继承父类的时候,要注意子类是否是封闭类,如果是密封类,就需要修饰 class 的关键词为 sealed,否则就需要为 final 和 non-sealed.

发布于: 刚刚阅读数: 5
用户头像

知识浅谈

关注

公众号:知识浅谈 2022.06.22 加入

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云社区星级博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥 联系方式vx:zsqtcc

评论

发布
暂无评论
超新概念出炉,JDK17的封闭类使用解析_8月月更_知识浅谈_InfoQ写作社区