2020-9-15
は、JDK15とJDK15の合計14の新機能をリリースしました。その中で、著者にとって最も印象的なのは、封印されたクラスを継承できることです。封印されたクラスは、最初から継承できないことをさまざまな方法で学びました。封印されたクラスの新しいバージョンを継承する場合は、許可を得て継承されたクラスを指定する必要があります。
同時に、継承されたクラスは、final、sealed、またはnonsealedを使用する必要があります。レタッチ
通常のコードのアイデア
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に追加すると、エラーが報告されます
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{
} //铁路工人
このとき、封印されたクラスを継承したい場合は、許可を得て継承されたクラスを指定する必要があります。継承されたクラスが最終、封印、非封印でない場合、エラーが報告されます。
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{
} //铁路工人
ご覧のとおり、封印されたクラスを継承するクラス(封印されたクラスの
場合)も指定する必要があります。
封印されていないクラスの場合は、通常どおり使用でき、通常どおり継承できます。
残念ながら、封印されたクラスは継承でき、コードを学んだので3つの見方を覆すことができます