Методы интерфейса в Kotlin
Метод в интерфейсе задает имя, параметры и тип результата. Если тела нет, метод считается абстрактным: реализацию пишут в классе. Сигнатура в классе должна совпадать с интерфейсом, включая типы параметров.
interface MathOps {
fun sum(a: Int, b: Int): Int
fun subtract(a: Int, b: Int): Int
}
Класс реализует каждый такой метод с тем же списком аргументов. Изменить количество параметров или их типы нельзя - это уже другой метод, и контракт будет нарушен.
class SimpleMath : MathOps {
override fun sum(a: Int, b: Int): Int {
return a + b
}
override fun subtract(a: Int, b: Int): Int {
return a - b
}
}
Параметры могут иметь значения по умолчанию прямо в интерфейсе. Тогда вызывающий код может опускать аргумент, а класс все равно обязан реализовать метод с полной сигнатурой.
interface Logger {
fun log(message: String, level: Int = 0)
}
class FileLogger : Logger {
override fun log(message: String, level: Int) {
println("[$level] $message")
}
}
Сделайте интерфейс Converter, в котором
будут методы toUpper и toLower.
Пусть оба метода принимают параметр типа
String и возвращают String.
Сделайте класс TextConverter, который будет
реализовывать интерфейс Converter.