РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
60 of 1163 menu

Ключевое слово non-sealed

Ключевое слово non-sealed применяется вместе с sealed и разрешает наследнику sealed-класса или sealed-интерфейса снова стать открытым для наследования. Обычно его указывают в объявлении класса или интерфейса, который наследует или реализует sealed-родителя. После этого от такого класса можно свободно наследоваться без дополнительных разрешений permits. Ключевое слово пишется перед именем класса или интерфейса: non-sealed class Child extends Parent.

Синтаксис

non-sealed class Child extends Parent { } non-sealed interface ChildInterface extends ParentInterface { }

Пример

Давайте объявим sealed-класс Shape и его наследника Circle, помеченного как non-sealed. Затем свободно унаследуемся от Circle:

public class Main { public static void main(String[] args) { BigCircle bigCircle = new BigCircle(); bigCircle.print(); } } sealed class Shape permits Circle { } non-sealed class Circle extends Shape { } class BigCircle extends Circle { public void print() { System.out.println("BigCircle"); } }

Результат выполнения кода:

"BigCircle"

Пример

Давайте объявим sealed-интерфейс Animal, а его наследника Dog пометим как non-sealed. После этого создадим класс Puppy, который свободно реализует Dog:

public class Main { public static void main(String[] args) { Puppy puppy = new Puppy(); puppy.sound(); } } sealed interface Animal permits Dog { } non-sealed interface Dog extends Animal { } class Puppy implements Dog { public void sound() { System.out.println("Woof"); } }

Результат выполнения кода:

"Woof"

Смотрите также

  • ключевое слово sealed,
    которое ограничивает наследование класса
  • ключевое слово permits,
    которое задает список разрешенных наследников
  • ключевое слово extends,
    которое выполняет наследование класса
  • ключевое слово implements,
    которое реализует интерфейс
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить