Сокрытие внутреннего состояния объекта: поля делают private, доступ дают через методы. Объект сам контролирует свои данные.
Основы ООП🤓 уверенно
Чем абстрактный класс отличается от интерфейса?
Абстрактный класс может иметь состояние и готовые методы, наследуется один. Интерфейсов можно реализовать несколько; с Java 8 в них есть default-методы, но нет обычного состояния.
Основы ООП🧐 глубоко
В чём разница статического и динамического связывания?
Контракт «что умеет» без «как именно»: код зависит от интерфейса, а реализацию можно менять — тестовую, новую, альтернативную.
Интерфейсы😕 база
Сколько интерфейсов может реализовать класс?
Сколько угодно — в отличие от наследования, где родитель только один.
Интерфейсы🤓 уверенно
Что такое default-методы и зачем их добавили?
Методы с реализацией прямо в интерфейсе (Java 8). Добавили, чтобы расширять старые интерфейсы (например, forEach в Iterable), не ломая все существующие реализации.
Интерфейсы🤓 уверенно
Что будет, если класс реализует два интерфейса с одинаковым default-методом?
Ошибка компиляции — конфликт. Класс обязан переопределить метод сам (можно вызвать нужный через InterfaceName.super.method()).
Интерфейсы🧐 глубоко
Чем функциональный интерфейс отличается от обычного?