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