🍁 作者:知识浅谈,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 { //孙子类 }
🍚总结
以上就是封闭父类和封闭子类以及封闭祖父类的用法。