JDK15新特性密封类可以被继承了!
【摘要】
2020-9-15发布了JDK15
**视频:https://edu.csdn.net/course/detail/31331**
JDK15一共有14个新特性,其中最为笔者印象深刻的莫过于对于——密封...
2020-9-15发布了JDK15
**视频:https://edu.csdn.net/course/detail/31331**
JDK15一共有14个新特性,其中最为笔者印象深刻的莫过于对于——密封类可以被继承
密封类从刚开始学就从各种途径了解到不能被继承,新版本的密封类如果想要被继承需要用permits指定被继承的类
同时,被继承的类需要用final,sealed或者non-sealed修饰
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
正常的一个代码思路
publicclassPerson{ }
classTeacherextendsPerson{ } //教师
classStudentextendsPerson{ } //学生
classMiddleSchoolStudentextendsStudent{ } //中学生
classGraduateStudentextendsStudent{ } //研究生
classWorkerextendsPerson{ } //工人
classRailWayWorkerextendsWorker{ } //铁路工人
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
如果给Person加上sealed就会报错
publicsealedclassPerson{ }
classTeacherextendsPerson{ } //教师
classStudentextendsPerson{ } //学生
classMiddleSchoolStudentextendsStudent{ } //中学生
classGraduateStudentextendsStudent{ } //研究生
classWorkerextendsPerson{ } //工人
classRailWayWorkerextendsWorker{ } //铁路工人
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
这时如果想让密封类被继承就需要用permits指定被继承的类,被继承的类如果没有final,sealed或者non-sealed也是会报错的
publicsealedclassPersonpermitsTeacher,Student,Worker{ }
finalclassTeacherextendsPerson{ } //教师
sealedclassStudentextendsPersonpermitsMiddleSchoolStudent,GraduateStudent{ } //学生
finalclassMiddleSchoolStudentextendsStudent{ } //中学生
finalclassGraduateStudentextendsStudent{ } //研究生
non-sealedclassWorkerextendsPerson{ } //工人
classRailWayWorkerextendsWorker{ } //铁路工人
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
可以看到,继承密封类的类,
如果是密封类还要继承的话,还需要指定
如果是非密封类的话,就可以正常使用,正常被继承。
视频学习:https://edu.csdn.net/course/detail/31331
文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。
原文链接:aaaedu.blog.csdn.net/article/details/110234483
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)