Аннотация @Override в Java
При переопределении метода родителя перед объявлением в потомке
ставят аннотацию @Override. Компилятор проверит, что
в базовом классе есть метод с подходящей сигнатурой.
Сеттер возраста в родителе и его переопределение в потомке выглядят так:
class Post {
protected int age = 0;
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}
class Article extends Post {
@Override
public void setAge(int age) {
if (age >= 18 && age <= 65) {
this.age = age;
}
}
}
Если заголовок или параметры не совпадут с методом родителя, код
с @Override не скомпилируется. Без аннотации
компилятор мог бы принять такой метод за новый, а не
за переопределение:
class Article extends Post {
// @Override
public void setage(int age) {
// compiles as a new method, not an override
}
}
Переопределите в классе Employee
сеттер возраста из класса User
и пометьте метод аннотацией @Override.