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

Вызов super в Java

После переопределения тело родительского метода в потомке не выполняется автоматически. Вызов реализации родителя записывают через super и точку перед именем метода. Сначала зададим метод в родителе:

class Post { protected int age = 0; public void setAge(int age) { if (age >= 0) { this.age = age; } else { System.out.println("need age more 0"); } } public int getAge() { return this.age; } }

В Article добавим верхнюю границу, а проверку «не меньше нуля» оставим родителю:

class Article extends Post { @Override public void setAge(int age) { if (age <= 120) { super.setAge(age); } else { System.out.println("need age less 120"); } } }

Проверка:

Article article = new Article(); article.setAge(30); System.out.println(article.getAge());

Дан код:

class User { protected int age = 0; public void setAge(int age) { if (age >= 0) { this.age = age; } else { System.out.println("need age more 0"); } } } class Employee extends User { @Override public void setAge(int age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { System.out.println("need age more 0"); } } else { System.out.println("need age less 120"); } } }

В классе Employee исправьте и упростите сеттер возраста, использовав оригинальный метод родителя через super.

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