Ограничения наследования

Интерфейсы

sealed interface IVehicle
    permits ITruck, Car {}

non-sealed interface ITruck extends IVehicle {}

final class Car implements IVehicle {}

//final class Helicopter implements IVehicle {} //<- error


В запечатанном интерфейсе нужно сразу объявить список классов-наследников, потому что кроме них наследников быть не может.