abstract class ReceiverClass { open fun String.onSomethingHappened() { println(this) } } class Child : ReceiverClass() { override fun String.onSomethingHappened() { with(this@Child as ReceiverClass){ this@onSomethingHappened.onSomethingHappened() println("hello world") } } }