Разница между запечатанным и конечным классами в Java
Я только что прочитал, что Java 15 должна иметь
sealed
классы.jep360 говорит:
Запечатанные классы и интерфейсы ограничивают, какие другие классы или интерфейсы могут их расширять или реализовывать.
Я думал, что это именно то, что
final class
делает в Java. Итак, теперь я задаюсь вопросом: в чем разница между
final class
и
sealed class
?
1 ответ
final class A {...}
означает, что ни один класс не может расширяться
A
.
sealed class A permits B {...}
означает, что только
B
может продлить
A
но никакому другому классу это не разрешено.