Четыре основных принципа объектно-ориентированного программирования следующие.
Абстракция. Моделирование требуемых атрибутов и взаимодействий сущностей в виде классов для определения абстрактного представления системы
Инкапсуляция. Скрытие внутреннего состояния и функций объекта и предоставление доступа только через открытый набор функций
Наследование. Возможность создания новых абстракций на основе существующих
Полиморфизм. Возможность реализации наследуемых свойств или методов отличающимися способами в рамках множества абстракций