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

Практика на абстрактные классы в Dart

Задачи на абстрактные контракты и общие реализации в базовом классе.

Сделайте абстрактный класс Storage с абстрактным методом count(). Сделайте классы ListStorage и SetStorage, которые возвращают размер своей коллекции. Выведите оба значения для непустых коллекций.

Дан следующий код:

abstract class Report { String get title; String body(); String headline() { return title.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 км в метрах и обратно.

Сделайте абстрактный класс Role с абстрактным геттером code. Сделайте GuestRole со значением "G" и StaffRole со значением "S". Дан список ролей из обоих типов. Выведите коды в порядке списка в одной строке без пробелов.

Дан следующий код:

abstract class Job { Job(this.name); String name; bool run(); String describe() { return name + (run() ? ":done" : ":fail"); } }

Сделайте CopyJob, возвращающий true, и MoveJob, возвращающий false. Выведите describe() для обоих.

Сделайте абстрактный класс Widget со статическим счетчиком созданных виджетов и абстрактным методом kind(). Пусть каждый наследник увеличивает счетчик в конструкторе. Создайте по одному Button и Field. Выведите счетчик и оба kind().

Сделайте абстрактный класс Parser с абстрактным методом parse(String line). Сделайте IntParser, который возвращает число или null. Даны строки "10", "x". Выведите результаты разбора.

Сделайте абстрактный класс Discount с методом apply(int price) в базовом классе, вызывающим абстрактный метод rate(). Сделайте HalfPrice со ставкой 0.5. Выведите цену 80 после скидки.

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