Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpAnOv 117 of 322 menu
◀ ▶

Проверка переопределения в 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 Post { public void setAge(int age) { } } class Article extends Post { // @Override public void setage(int age) { // compiles as a new method, not an override } }

Тот же приём работает при реализации метода интерфейса: метка связывает объявление с контрактом интерфейса. Пример для простого счётчика просмотров:

interface ViewCounter { int views(); } class PageStats implements ViewCounter { private int count = 0; @Override public int views() { return count; } }

Переопределите в классе Employee сеттер возраста из класса User и пометьте метод аннотацией @Override.

Реализуйте интерфейс с одним методом label(), возвращающим строку. Метод в классе должен быть помечен @Override.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить