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

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

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

Дан класс:

open class Device(val id: String) { open fun status(): String = "off" } class Phone(id: String) : Device(id) { override fun status(): String = "idle" }

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

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

Сделайте класс Account с защищённым полем owner: String. Сделайте класс Savings с методом ownerName(): String, возвращающим owner. Проверьте для владельца "Kim".

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

Даны типы:

open class Shape class Circle : Shape() class Square : Shape() val items: List<Shape> = listOf(Circle(), Square(), Circle())

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

Дан фрагмент:

open class Msg(val text: String) class Alert(text: String, val level: Int) : Msg(text) fun show(m: Msg) { if (m is Alert) { println(m.level) } else { println(m.text) } }

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

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

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

Дана переменная:

open class User(val login: String) class Admin(login: String, val scope: String) : User(login) val u: User = Admin("root", "all")

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

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