package sample
trait S {
fun foo(t: T): T
val some: T? get
var other: T?
get
set
}
open abstract class S1 : S
class S2 : S1() {
override val some: String = "S"
override var other: String?
get() = null
set(value) {}
override fun foo(t: String): String {
return super.foo(t)
}
}