Расскажите про основные понятия ООП: класс, объект, интерфейс.
Класс
Класс — способ описания сущности, определяющий состояние и поведение, зависящее от этого состояния, а также правила взаимодействия (контракт). С точки зрения программирования — набор данных (полей) и функций для работы с ними (методов). С точки зрения структуры программы — сложный тип данных.
Объект
Объект (экземпляр) — отдельный представитель класса, имеющий конкретное состояние и поведение, полностью определяемое классом. Каждый объект имеет конкретные значения атрибутов и методы, работающие с ними по правилам класса.
Интерфейс
Интерфейс — набор методов класса, доступных для использования. Это совокупность всех публичных методов и атрибутов, которая специфицирует класс, определяя все возможные действия над ним.
В Java interface — ещё и языковая конструкция: контракт (набор методов), который класс реализует через implements. Это один из основных инструментов абстракции и полиморфизма.