Наследование классов в Dart
Один класс может наследовать от другого и заимствовать его
поля и методы. Это уместно, когда типы похожи: есть Post
с заголовком, автором и лайками, а Note нужен тот же набор
плюс, например, отметка черновика. Повторять один и тот же код
в двух классах неудобно - общую часть выносят в родителя,
особенности оставляют в потомке.
Родительский класс задают как обычно - слово class и имя типа.
Потомок связывают с родителем через extends: после имени
класса пишут ключевое слово и тип родителя. Так объявляют, что
запись-потомок относится к той же ветке типов, что и Post.
У объекта потомка доступны и собственные члены класса, и все, что
объявлено публично у родителя. Методы родителя можно вызывать у
экземпляра Note так же, как у Post, если они не
переопределены в потомке. Поля родителя с обычными именами тоже
видны у объекта потомка.
Наследование помогает строить иерархии: базовая запись, уточненные
варианты, общий код в одном месте. В следующих уроках разберем
синтаксис extends, переопределение методов, конструкторы
при наследовании и проверку типов в цепочке родитель-потомок.