PHondogo
07/29/2022, 10:55 AMopen class Test {
  open fun SomeClass.test(){}
}
class Test2 : Test() {
  override fun SomeClass.test() {
    super.test() // is compilation error
  }
}dmitriy.novozhilov
07/29/2022, 11:00 AMabstract class Base {
    abstract fun String.foo()
    open fun applyFoo(s: String) {
        s.foo()
    }
}
open class Derived : Base() {
    override fun String.foo() {
        // do something
    }
}
class Impl : Derived() {
    override fun applyFoo(s: String) {
        super.applyFoo(s) // calls `foo` from Derived
        // do something else
    }
}
fun use(base: Base, s: String) {
    base.applyFoo(s)
}dmitriy.novozhilov
07/29/2022, 11:00 AM