Интерфейсы

sealed interface IVehicle
    permits ITruckCar {}

non-sealed interface ITruck extends IVehicle {}

final class Car implements IVehicle {}

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


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