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

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

Ключевое слово abstract в Dart используется для объявления абстрактных классов и абстрактных методов. Абстрактный класс не может быть инстанцирован напрямую - от него можно только наследоваться. Абстрактный метод не имеет тела и должен быть обязательно переопределён в классе-наследнике. Абстрактные методы могут существовать только внутри абстрактных классов.

Синтаксис

abstract class ClassName { void methodName(); }

Пример

Давайте создадим абстрактный класс Shape с абстрактным методом area и унаследуем от него класс Rectangle, который переопределит этот метод:

abstract class Shape { double area(); } class Rectangle extends Shape { double width; double height; Rectangle(this.width, this.height); @override double area() { return width * height; } } void main() { Rectangle rect = Rectangle(3, 4); print(rect.area()); }

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

12.0

Пример

Абстрактный класс может содержать как абстрактные методы, так и обычные методы с реализацией. Давайте создадим класс Animal с абстрактным методом sound и обычным методом describe:

abstract class Animal { String name; Animal(this.name); String sound(); String describe() { return 'Animal: $name'; } } class Dog extends Animal { Dog(String name) : super(name); @override String sound() { return 'Woof'; } } void main() { Dog dog = Dog('Rex'); print(dog.describe()); print(dog.sound()); }

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

"Animal: Rex" "Woof"

Пример

Абстрактный класс не может быть создан напрямую. Давайте попробуем инстанцировать абстрактный класс и убедимся, что компилятор выдаст ошибку:

abstract class Shape { double area(); } void main() { // Shape shape = Shape(); // ошибка компиляции print('Cannot instantiate abstract class'); }

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

"Cannot instantiate abstract class"

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

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