JDK15新特性密封类可以被继承了!

简介: JDK15新特性密封类可以被继承了!
2020-9-15发布了JDK15
**视频:https://edu.csdn.net/course/detail/31331**
JDK15一共有14个新特性,其中最为笔者印象深刻的莫过于对于——密封类可以被继承
密封类从刚开始学就从各种途径了解到不能被继承,新版本的密封类如果想要被继承需要用permits指定被继承的类
同时,被继承的类需要用final,sealed或者non-sealed修饰

正常的一个代码思路

publicclassPerson{ }
classTeacherextendsPerson{ }    //教师
classStudentextendsPerson{ }    //学生
classMiddleSchoolStudentextendsStudent{ }    //中学生
classGraduateStudentextendsStudent{ }    //研究生
classWorkerextendsPerson{ }    //工人
classRailWayWorkerextendsWorker{ }    //铁路工人

如果给Person加上sealed就会报错

publicsealedclassPerson{ }
classTeacherextendsPerson{ }    //教师
classStudentextendsPerson{ }    //学生
classMiddleSchoolStudentextendsStudent{ }    //中学生
classGraduateStudentextendsStudent{ }    //研究生
classWorkerextendsPerson{ }    //工人
classRailWayWorkerextendsWorker{ }    //铁路工人

这时如果想让密封类被继承就需要用permits指定被继承的类,被继承的类如果没有final,sealed或者non-sealed也是会报错的

publicsealedclassPersonpermitsTeacher,Student,Worker{ }
finalclassTeacherextendsPerson{ }    //教师
sealedclassStudentextendsPersonpermitsMiddleSchoolStudent,GraduateStudent{ }    //学生
finalclassMiddleSchoolStudentextendsStudent{ }    //中学生
finalclassGraduateStudentextendsStudent{ }    //研究生
non-sealedclassWorkerextendsPerson{ }    //工人
classRailWayWorkerextendsWorker{ }    //铁路工人

可以看到,继承密封类的类,

如果是密封类还要继承的话,还需要指定

如果是非密封类的话,就可以正常使用,正常被继承。

视频学习:https://edu.csdn.net/course/detail/31331


目录
相关文章
|
4天前
|
Java API 开发者
【Java字节码操控新篇章】JDK 22类文件API预览:解锁Java底层的无限可能!
【9月更文挑战第6天】JDK 22的类文件API为Java开发者们打开了一扇通往Java底层世界的大门。通过这个API,我们可以更加深入地理解Java程序的工作原理,实现更加灵活和强大的功能。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来!
|
2天前
|
Java API 开发者
【Java字节码的掌控者】JDK 22类文件API:解锁Java深层次的奥秘,赋能开发者无限可能!
【9月更文挑战第8天】JDK 22类文件API的引入,为Java开发者们打开了一扇通往Java字节码操控新世界的大门。通过这个API,我们可以更加深入地理解Java程序的底层行为,实现更加高效、可靠和创新的Java应用。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来,并积极探索类文件API带来的无限可能!
|
20天前
|
存储 Java
【Java集合类面试七】、 JDK7和JDK8中的HashMap有什么区别?
JDK7中的HashMap使用数组加链表解决冲突,而JDK8增加了红黑树结构以优化链表过长时的性能,提高查找效率。
|
26天前
|
Oracle Java 关系型数据库
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
|
26天前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
|
7天前
|
Java 编译器 API
JDK8新特性--lambda表达式
JDK8的Lambda表达式是Java语言的一大进步。它为Java程序提供了更多的编程方式,让代码更加简洁,也让函数式编程的概念在Java中得到了体现。Lambda表达式与Java 8的其他新特性,如Stream API、新的日期时间API一起,极大地提高了Java编程的效率和乐趣。随着时间的流逝,Java开发者对这些特性的理解和应用将会越来越深入,进一步推动Java语言和应用程序的发展。
6 0
|
26天前
|
算法 Java iOS开发
JDK8到JDK27版本升级的新特性问题之JDK 17中G1在资源占用方面有何变化
JDK8到JDK27版本升级的新特性问题之JDK 17中G1在资源占用方面有何变化
|
26天前
|
XML JSON Java
JDK8到JDK26版本升级的新特性问题之在JDK 13中,字符串文本块改进字符串嵌入是如何实现的
JDK8到JDK26版本升级的新特性问题之在JDK 13中,字符串文本块改进字符串嵌入是如何实现的
|
22天前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
33 1
|
25天前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
252 4