Введение в абстрактные классы в Dart
Иногда один класс описывает общее для нескольких типов, но сами
объекты этого класса создавать не планируют. Например, есть
Post с полями и методами, а конкретные записи в программе -
это Note и Employee, наследующие от Post.
Базовый тип нужен только как общая основа для потомков.
Абстрактный класс как раз задает такую основу: в нем можно
хранить общие поля и методы, но экземпляр абстрактного класса
создать нельзя. Создание останавливается с ошибкой, если
в коде пытаются вызвать конструктор абстрактного Post.
От обычного класса абстрактный отличается словом abstract
в объявлении. Наследоваться от него можно через extends:
потомок указывает родителя и при необходимости передает аргументы
в его конструктор.
Объекты создают только у конкретных классов-потомков. Общая логика остается в абстрактном родителе, а отличия - в наследниках. В следующих уроках разберем объявление абстрактного класса, абстрактные методы и геттеры, общий код в теле класса и конструкторы.