超新概念出炉,JDK17的封闭类使用解析
【摘要】 超新概念出炉,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 { //孙子类
}
以上就是封闭父类和封闭子类以及封闭祖父类的用法。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)