Почему можно не указывать значения по умолчанию в переопределенных функциях-членах подтипов?
Как указано в заголовке: Почему можно опустить значения по умолчанию в переопределенных функциях-членах подтипов?
Этонормальный или следовало ожидать?
interface Foo {
fun bar(parameter: Int = 1)
}
class Baz : Foo {
override fun bar(parameter: Int) { // OK
println(parameter)
}
}
val baz = Baz()
baz.bar() // OK
baz.bar(2) // OK
Такое же поведение в случае, когдаFoo
это класс.