超新概念出炉,JDK17 的封闭类使用解析
🍁 作者:知识浅谈,CSDN 签约讲师,CSDN 博客专家,华为云云享专家,阿里云星级博主
📌 擅长领域:全栈工程师、爬虫、ACM 算法
💒 公众号:知识浅谈
🔥 联系方式 vx:zsqtcc
🤞JDK17 的封闭类使用解析总结🤞
正菜来了⛳⛳⛳
🎈封闭类概念
首先:按照往常的使用的类继承的方法,我们可以通过继承(extend)来实现类的能力复用、扩展与增强。但有的时候,有些能力我们不希望被继承了去做一些不可预知的扩展。所以,我们需要对继承关系有一些限制的控制手段。而密封类的作用就是限制类的继承。
其次:针对限制继承的做法,final 修饰类,这样类就无法被继承了,JDK17 推出了封闭类这个概念可以在不用 final 的情况下,对类继承做相应的限制。
🎈实战操作
📐第 1 步: 父类 Human
使用 sealed 修饰父类并用 permits 修饰能继承该类的子类来进行限制。
复制代码
📐第 2 步 :子类 Man
使用 final 或者 non-sealed 修饰继承封闭父类的子类
复制代码
📐第 3 步:孙子类
在其父类和祖父类为 sealed 修饰的情况下,孙子类可以继承父类,并用 final 或者 non-sealed 修饰
复制代码
🍚总结
以上就是封闭父类和封闭子类以及封闭祖父类的用法,需要注意的是,在子类继承父类的时候,要注意子类是否是封闭类,如果是密封类,就需要修饰 class 的关键词为 sealed,否则就需要为 final 和 non-sealed.
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/ef26215fa72494e3835136923】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论