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

Практика на интерфейсы в Kotlin

Дан интерфейс:

interface Named { val name: String }

Сделайте класс City, реализующий интерфейс Named. Выведите name для "Oslo".

Даны интерфейсы:

interface Printable { fun printLine(): String } interface Storable { fun save(): Boolean }

Сделайте класс Note, реализующий оба интерфейса. Пусть printLine() возвращает "note", а save() - true. Выведите оба результата.

Дан интерфейс:

interface Clock { fun now(): String fun stamp(): String { return "@" + now() } }

Сделайте класс FixedClock, который возвращает "12:00" из now(). Выведите stamp() без переопределения stamp.

Сделайте интерфейс Desc, наследующий Named, и добавьте метод fun blurb(): String. Сделайте класс Product с именем и методом blurb(), возвращающим name и "!". Выведите blurb для "tea".

Дан список:

interface Scored { val score: Int } class Entry(override val score: Int) : Scored val rows: List<Scored> = listOf( Entry(3), Entry(7), Entry(5), )

Выведите сумму score всех записей.

Сделайте интерфейс Resettable с методом fun reset(). Сделайте класс Counter, который хранит value и реализует Resettable. Увеличьте значение до 4, сбросьте, выведите value.

Даны типы:

interface A { fun tag(): String = "A" } interface B { fun tag(): String = "B" }

Сделайте класс Both, реализующий A и B, и верните из tag() строку "AB". Выведите результат.

Сделайте интерфейс Validator с методом fun ok(text: String): Boolean. Сделайте NonEmpty, принимающий только непустые строки. Проверьте "" и "hi", выведите оба ответа.

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

interface HasId { val id: Long } fun showId(x: Any) { if (x is HasId) println(x.id) else println(0L) }

Вызовите showId для object : HasId { override val id = 9L } и для "x".

Сделайте интерфейс Formatter с методом format(n: Int): String. Сделайте класс HexFmt, который выводит шестнадцатеричную строку без префикса. Отформатируйте 255 и выведите.

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