Ответ 1
Используйте extends для создания подкласса, а super - для ссылки на суперкласс.
Extends
является типичным наследованием класса ООП. Если класс a расширяет класс b, все свойства, переменные, функции, реализованные в классе b, также доступны в классе a. Кроме того, вы можете переопределить функции и т.д.
Вы используете extend
, если хотите создать более конкретную версию класса. Например, класс автомобиль может расширить класс автомобиль. В Dart класс может расширять только один класс.
Каждый класс неявно определяет интерфейс, содержащий все элементы экземпляра класса и любые интерфейсы, которые он реализует. Если вы хотите создать класс A, который поддерживает API класса B без наследования реализации Bs, класс A должен реализовывать интерфейс B.
Implements
можно использовать, если вы хотите создать собственную реализацию другого класса или интерфейса. Когда класс a реализует класс b. Все функции, определенные в классе b, должны быть реализованы.
Когда вы реализуете другой класс, вы не наследуете код от класса. Вы только наследуете тип. В Dart вы можете использовать ключевое слово implements
с несколькими классами или интерфейсами.
Миксины - это способ повторного использования кода класса в нескольких иерархиях классов.
With
используется для включения Mixins. Миксин - это другой тип структуры, который может использоваться только с ключевым словом with
.
Они используются во Flutter для включения общих фрагментов кода. Обычно используемый Mixin - это SingleTickerProviderStateMixin.