Практика на наследование в 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".