Абстрактные методы в 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 сделайте абстрактные
методы для получения площади и периметра фигуры.