Реализация интерфейса в Kotlin
Класс реализует интерфейс через двоеточие после имени типа. Интерфейс перечисляют так же, как базовый класс при наследовании.
interface Greeter {
fun greet()
}
class User : Greeter {
override fun greet() {
println("hello")
}
}
Каждый метод интерфейса без тела нужно описать в классе
и пометить override. Если хотя бы один обязательный
член пропустить, компилятор сообщит об ошибке.
fun main() {
val user: Greeter = User()
user.greet()
}
Переменная может иметь тип интерфейса, а значение - объект класса-реализации. Так код опирается на контракт, а не на конкретный класс.
Сделайте интерфейс Printer, в котором будет
метод printLine.
Сделайте класс ConsolePrinter, который будет
реализовывать интерфейс Printer.
Создайте объект класса ConsolePrinter.
Сохраните его в переменную типа Printer
и вызовите метод printLine.