Четыре основных принципа объектно-ориентированного программирования следующие:

1. Отвлечение (Абстрагирование). Отвлечение от несущественных сторон, свойств, связей объекта с целью выделения их существенных, закономерных свойств и связей.
2. Разделение (Инкапсуляция). Разделение внутреннего состояния и методов (действий) объекта и предоставление доступа к состоянию только через открытый набор методов.
3. Наследование. Возможность создания новых абстракций объектов на основе существующих.
4. Универсальность (Полиморфизм). Возможность реализации свойств или методов, которые могут принимать данные разных типов обьектов, в рамках множества абстракций.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence