Ответ
Sealed class в Java (начиная с Java 15) позволяет ограничить набор классов, которые могут его наследовать.
public sealed class Shape
permits Circle, Square, Rectangle {
// общие методы/поля
}
final class Circle extends Shape {
private final double radius;
// реализация
}
non-sealed class Square extends Shape {
private final double side;
// реализация
}
sealed class Rectangle extends Shape
permits FilledRectangle {
// реализация
}
final class FilledRectangle extends Rectangle {
// реализация
}
Ключевые моменты:
sealed- модификатор классаpermits- перечисление разрешенных наследников- Наследники должны быть:
final,sealedилиnon-sealed - Все наследники должны быть в том же модуле/пакете (если не указано иное)