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

Абстрактные методы в Java

В абстрактном классе можно объявить абстрактный метод - без тела, только с сигнатурой. Такой метод задаёт контракт: каждый конкретный потомок обязан дать свою реализацию с аннотацией @Override.

Абстрактный метод помечают словом abstract перед типом возвращаемого значения. Тело не пишут, после сигнатуры стоит точка с запятой:

abstract class Content { private String title = ""; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public abstract String render(); }

Родитель не знает, как именно показывать материал у Post или Page. Реализацию пишут в наследниках. Класс-потомок без реализации всех абстрактных методов родителя должен сам быть объявлен абстрактным, иначе код не скомпилируется.

Реализация в классе Post:

class Post extends Content { private String text = ""; public String getText() { return text; } public void setText(String text) { this.text = text; } @Override public String render() { return getTitle() + ": " + text; } }

Тот же метод в Page возвращает другую строку:

class Page extends Content { @Override public String render() { return "page " + getTitle(); } }

Проверка работы на объекте записи:

Post post = new Post(); post.setTitle("news"); post.setText("hello"); System.out.println(post.render());

Сделайте абстрактный класс User с абстрактным методом increaseRevenue, принимающим число. Напишите реализацию в классах Employee и Student.

В классе Figure сделайте абстрактные методы для получения площади и периметра фигуры.

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