Инкапсуляция: Сокрытие данных и методов внутри объекта, доступ к которым осуществляется через четко определенный интерфейс. Это повышает безопасность и упрощает модификацию кода.
Наследование: Возможность создания новых классов (дочерних) на основе существующих (родительских). Дочерние классы наследуют свойства и методы родительских, сокращая дублирование кода и создавая иерархии классов.
Полиморфизм: Возможность использовать объекты различных классов через общий интерфейс. Это позволяет выполнять одни и те же действия по-разному в зависимости от типа объекта. В Flutter часто реализуется через виртуальные методы или в Dart через переопределение методов (@override).
Абстракция: Выделение существенных характеристик объекта, игнорируя несущественные детали. Это позволяет работать с высокоуровневыми моделями, не вдаваясь в подробности их реализации. В Dart реализуется с помощью абстрактных классов и интерфейсов.