Практика на abstract в Java
Сделайте абстрактный класс Storage
с абстрактным методом count().
Сделайте классы ListStorage
и SetStorage, которые возвращают
размер своей коллекции.
Выведите оба значения для непустых коллекций.
Дан класс:
abstract class Report {
abstract String getTitle();
abstract String body();
String headline() {
return getTitle().toUpperCase();
}
}
Сделайте DailyReport с заголовком "day"
и телом "ok". Выведите headline()
и body().
Сделайте абстрактный класс Payment
с полем amount
и абстрактным методом label().
Сделайте классы CardPayment
и CashPayment, возвращающие
"card" и "cash".
Выведите метки для суммы 50.
Сделайте абстрактный класс UnitConv
с методом toBase(double value)
в теле класса и абстрактным методом
fromBase(double value).
Сделайте KmConv, где базовая единица -
метры, а множитель равен 1000.
Выведите 2.5 км в метрах и обратно.
Сделайте абстрактный класс EmployeeRole
с абстрактным методом code().
Сделайте GuestRole со значением
"G" и StaffRole
со значением "S".
Дан список ролей из обоих типов.
Выведите коды в порядке списка в одной строке
без пробелов.
Дан класс:
abstract class Job {
private final String name;
Job(String name) {
this.name = name;
}
abstract boolean run();
String describe() {
return name + (run() ? ":done" : ":fail");
}
}
Сделайте CopyJob, возвращающий
true, и MoveJob,
возвращающий false.
Выведите describe() для обоих.
Сделайте абстрактный класс Shape
со статическим счётчиком созданных фигур
и абстрактным методом kind().
Пусть каждый наследник увеличивает счётчик
в конструкторе.
Создайте по одному Circle
и Square. Выведите счётчик
и оба kind().
Сделайте абстрактный класс Parser
с абстрактным методом
parse(String line).
Сделайте IntParser, который возвращает
число или null.
Даны строки "10", "x".
Выведите результаты разбора.
Сделайте абстрактный класс Discount
с методом apply(int price)
в базовом классе, вызывающим абстрактный
метод rate().
Сделайте HalfPrice со ставкой 0.5.
Выведите цену 80 после скидки.