Sobes.tech
Назад к вопросам
Junior — Middle
63

Каким образом можно создать запечатанный класс в 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, то запечатанные классы не поддерживаются напрямую, и ограничение наследования можно реализовать через другие паттерны (например, приватные конструкторы и фабричные методы), но это не даёт строгого ограничения на уровне языка.