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

Конструктор абстрактного класса в Java

Абстрактный класс может иметь конструктор с параметрами. Общие данные инициализируют в родителе, а потомок передаёт значения через super(...) в своём конструкторе.

Заголовок материала зададим в конструкторе абстрактного Content:

abstract class Content { protected String title; public Content(String title) { this.title = title; } public String getTitle() { return title; } public abstract String render(); }

Класс Post принимает заголовок и текст, заголовок передаёт в конструктор родителя:

class Post extends Content { private String text; public Post(String title, String text) { super(title); this.text = text; } @Override public String render() { return title + ": " + text; } }

При создании объекта вызывается цепочка конструкторов - сначала родитель получает title, затем инициализируется поле потомка:

Post post = new Post("news", "hello"); System.out.println(post.getTitle()); System.out.println(post.render());

В абстрактном классе допустим блок инициализации экземпляра - он выполнится при создании любого конкретного потомка после вызова конструктора родителя:

abstract class Content { protected String title; public Content(String title) { if (title.isEmpty()) { throw new IllegalArgumentException("title is empty"); } this.title = title; } public abstract String render(); }

Сделайте абстрактный класс User с конструктором, принимающим имя пользователя. Сделайте класс Employee с конструктором, принимающим имя и зарплату, и передайте имя в конструктор родительского класса.

Сделайте класс Student с конструктором, принимающим имя и стипендию. Передайте имя в конструктор родительского класса и напишите реализацию абстрактного метода increaseRevenue.

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