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

Практика на наследование в Dart

Ниже задачи на иерархию классов, override и приведение типов.

Сделайте класс Animal с методом speak(), возвращающим "...". Сделайте классы Dog и Cat, которые возвращают "woof" и "meow". Выведите оба звука.

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

class Device { Device(this.id); String id; String status() { return "off"; } } class Phone extends Device { Phone(super.id); @override String status() { return "idle"; } }

Создайте Phone("p1"), сохраните в переменную типа Device. Выведите status() и id.

Сделайте класс Base с методом tag(), возвращающим "B". Сделайте класс Derived, переопределите tag() так, чтобы возвращалось "D", и добавьте метод fullTag() - склейку результата super.tag() и tag() без разделителя. Выведите fullTag().

Сделайте класс Person с конструктором name. Сделайте класс Worker с параметрами name и role и вызовом конструктора предка. Выведите имя и роль.

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

class Shape {} class Circle extends Shape {} class Square extends Shape {}

Поместим объекты в список:

var items = [Circle(), Square(), Circle()];

Выведите, сколько элементов списка являются Circle.

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

class Msg { Msg(this.text); String text; } class Alert extends Msg { Alert(super.text, this.level); int level; } void show(Msg m) { if (m is Alert) { print(m.level); } else { print(m.text); } }

Вызовите show для Msg("ok") и Alert("fail", 3). Зафиксируйте вывод.

Сделайте класс Label с полем text. Сделайте класс BoldLabel, переопределите геттер: строка в верхнем регистре. Выведите text для "note".

Сделайте класс Vehicle с методом wheels(), возвращающим 0. Сделайте класс Bike, наследующий Vehicle, переопределите метод и верните 2. Выведите число колес.

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

class Employee { Employee(this.login); String login; } class Admin extends Employee { Admin(super.login, this.scope); String scope; }

Создадим объект:

Employee u = Admin("root", "all");

Получите объект Admin из u и выведите scope. Если тип другой, выведите "none".

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