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

Ключевое слово extends

Ключевое слово extends используется при объявлении класса для указания родительского класса, от которого наследуется новый класс. Класс, который наследует, называется подклассом (или дочерним классом), а класс, от которого наследуют - надклассом (или родительским классом). Подкласс получает доступ ко всем публичным свойствам и методам родителя, а также может переопределять их и добавлять собственные. В Dart каждый класс может наследоваться только от одного класса, но при этом сам может быть родителем для неограниченного числа подклассов.

Синтаксис

class ChildClass extends ParentClass { // тело класса }

Пример

Давайте создадим родительский класс Animal с методом sound и наследуем от него класс Dog:

class Animal { void sound() { print('Some sound'); } } class Dog extends Animal { } void main() { Dog dog = Dog(); dog.sound(); }

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

"Some sound"

Пример

Давайте переопределим метод sound в дочернем классе Dog и добавим собственный метод fetch:

class Animal { void sound() { print('Some sound'); } } class Dog extends Animal { @override void sound() { print('Woof'); } void fetch() { print('Fetching'); } } void main() { Dog dog = Dog(); dog.sound(); dog.fetch(); }

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

"Woof" "Fetching"

Пример

Давайте вызовем конструктор родительского класса из конструктора дочернего с помощью ключевого слова super:

class Animal { String name; Animal(this.name); } class Dog extends Animal { Dog(String name) : super(name); } void main() { Dog dog = Dog('Rex'); print(dog.name); }

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

"Rex"

Пример

Давайте проверим, что дочерний класс является экземпляром родительского с помощью оператора is:

class Animal { } class Dog extends Animal { } void main() { Dog dog = Dog(); print(dog is Animal); print(dog is Dog); }

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

true true

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

  • ключевое слово implements,
    которое реализует интерфейс класса
  • ключевое слово with,
    которое подключает миксины к классу
  • ключевое слово super,
    которое обращается к родительскому классу
  • ключевое слово abstract,
    которое объявляет абстрактный класс
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить