Поля в абстрактном классе Java
Абстрактный класс может хранить поля так же, как обычный. Общие данные задают в родителе один раз, а наследники получают те же переменные у каждого своего объекта.
Заголовок материала удобно держать в абстрактном Content,
а текст - только у записи Post:
abstract class Content {
protected String title = "";
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public abstract String render();
}
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 title + ": " + text;
}
}
Поле title с модификатором protected видно
в классе-потомке: метод render обращается к title
напрямую. Приватное поле text остаётся только внутри
Post.
Проверим чтение общего поля через объект записи:
Post post = new Post();
post.setTitle("news");
post.setText("hello");
System.out.println(post.getTitle());
System.out.println(post.render());
Сделайте абстрактный класс User
с приватным полем name и методами
getName и setName.
В классе Employee добавьте поле
salary.