Вопрос проверяет понимание аннотаций для переопределения и перегрузки методов, а также их связь с полиморфизмом.
@Override — аннотация для переопределения метода родительского класса (полиморфизм).
Перегрузка (Overload) — создание методов с одним именем, но разными параметрами (в одной классе).
1. @Override:
Показывает, что метод переопределяет метод суперкласса.
Относится к полиморфизму (принцип OOP).
Пример:
class Parent {
void print() { System.out.println("Parent"); }
}
class Child extends Parent {
@Override
void print() { System.out.println("Child"); }
}2. Перегрузка (Overload):
Методы с одним именем, но разными параметрами.
Относится к инкапсуляции (группировка функциональности).
Пример:
class Calculator {
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }
}