Вопрос проверяет понимание основных принципов объектно-ориентированного программирования в Java.
Основные принципы ООП:
Инкапсуляция - скрытие внутренней реализации (private поля + getters/setters)
Наследование - расширение функциональности классов (extends)
Полиморфизм - разные реализации одного интерфейса (переопределение методов)
1. Инкапсуляция
Скрытие данных и предоставление контролируемого доступа:
public class BankAccount {
private double balance; // Скрытое поле
public void deposit(double amount) { // Контролируемый доступ
if (amount > 0) balance += amount;
}
}2. Наследование
Повторное использование кода через иерархию классов:
class Animal {
void makeSound() { System.out.println("Some sound"); }
}
class Dog extends Animal {
@Override
void makeSound() { System.out.println("Bark!"); }
}3. Полиморфизм
Один интерфейс - множество реализаций:
Animal myAnimal = new Dog(); // Ссылка родительского типа
myAnimal.makeSound(); // Вызовется метод Dog