Каким образом можно создать запечатанный класс в Java с ограничением наследования?
Ответ от нейросети
sobes.tech AI
В Java начиная с версии 15 появилась возможность создавать запечатанные (sealed) классы, которые ограничивают наследование. Для этого используется ключевое слово sealed в объявлении класса, а также указывается список классов, которые могут наследовать этот класс с помощью ключевого слова permits.
Пример:
public sealed class Vehicle permits Car, Truck {
// тело класса
}
public final class Car extends Vehicle {
// тело класса
}
public final class Truck extends Vehicle {
// тело класса
}
В этом примере класс Vehicle является запечатанным и может быть унаследован только классами Car и Truck. Другие классы наследовать Vehicle не смогут.
Важно, что наследники должны быть объявлены как final, sealed или non-sealed.
Если используется версия Java ниже 15, то запечатанные классы не поддерживаются напрямую, и ограничение наследования можно реализовать через другие паттерны (например, приватные конструкторы и фабричные методы), но это не даёт строгого ограничения на уровне языка.