Ответ
1. Инкапсуляция
- Назначение: Скрытие внутренней реализации и защита данных объекта от несанкционированного доступа.
- Почему важно: Позволяет изменять внутреннюю логику класса, не затрагивая код, который его использует.
-
Пример:
class BankAccount { private double balance; // Поле скрыто public void deposit(double amount) { if (amount > 0) balance += amount; // Контролируемое изменение } }
2. Наследование
- Назначение: Создание иерархии классов для повторного использования кода и установления отношений "является" (is-a).
- Почему важно: Устраняет дублирование кода и организует систему в логическую структуру.
- Пример:
class Animal { /* общие свойства */ } class Dog extends Animal { /* специфичные для собаки */ }
3. Полиморфизм
- Назначение: Возможность объектов разных классов обрабатываться через общий интерфейс.
- Почему важно: Позволяет писать гибкий, расширяемый код, который работает с абстракциями.
- Пример:
Shape shape = new Circle(); // или new Square() shape.draw(); // Вызовется правильная реализация
4. Абстракция
- Назначение: Выделение существенных характеристик объекта и игнорирование несущественных деталей.
- Почему важно: Упрощает сложные системы, позволяя работать с концепциями высокого уровня.
- Пример: Интерфейс
Listабстрагирует концепцию списка, скрывая реализацииArrayListилиLinkedList.