2020-9-15发布了JDK15
JDK15一共有14个新特性,其中最为笔者印象深刻的莫过于对于——密封类可以被继承

密封类从刚开始学就从各种途径了解到不能被继承,新版本的密封类如果想要被继承需要用permits指定被继承的类
同时,被继承的类需要用final,sealed或者non-sealed修饰

正常的一个代码思路
public class Person { } class Teacher extends Person { } //教师 class Student
extends Person { } //学生 class MiddleSchoolStudent extends Student { } //中学生
class GraduateStudent extends Student { } //研究生 class Worker extends Person{ }
//工人 class RailWayWorker extends Worker{ } //铁路工人
如果给Person加上sealed就会报错
public sealed class Person { } class Teacher extends Person { } //教师 class
Student extends Person { } //学生 class MiddleSchoolStudent extends Student { }
//中学生 class GraduateStudent extends Student { } //研究生 class Worker extends
Person{ } //工人 class RailWayWorker extends Worker{ } //铁路工人
这时如果想让密封类被继承就需要用permits指定被继承的类,被继承的类如果没有final,sealed或者non-sealed也是会报错的
public sealed class Person permits Teacher,Student,Worker{ } final class
Teacher extends Person { } //教师 sealed class Student extends Person permits
MiddleSchoolStudent,GraduateStudent{ } //学生 final class MiddleSchoolStudent
extends Student { } //中学生 final class GraduateStudent extends Student { } //研究生
non-sealed class Worker extends Person{ } //工人 class RailWayWorker extends
Worker{ } //铁路工人
可以看到,继承密封类的类,
如果是密封类还要继承的话,还需要指定
如果是非密封类的话,就可以正常使用,正常被继承。

唉,密封类可以被继承了,颠覆我学代码以来的三观了

技术
©2020 ioDraw All rights reserved
46岁微软:从盖茨缔造帝国到纳德拉复兴第二章 初识C语言常量2021前端高频面试题(一定要看哦!!!)滤波器,窗函数以及切比雪夫逼近法新手快速了解冒泡排序、插入排序的详解pytorch训练过程中GPU利用率低Golang经典面试题初识Mongdb之数据查询篇(三)人类第一架火星直升机正在部署 择机在这颗异域星球首飞python判断两个列表(list)中的值是否相同([1,2,3]和[3,2,1])