Представьте, что у меня есть такой класс:
open class CSRequest<Data : Any>(open val onSend: () -> CSResponse<Data>) {
// some other code
}
Я бы хотел иногда иметь возможность переопределить его, чтобы написать что-то вроде:
class SpecialRequest(items: List<String>) : CSRequest<CSServerData>() {
override val onSend: () -> CSResponse<CSServerData> = {
// Do send work
}
}
Но я не могу. Это мой API. Я спрашиваю, могу ли я каким-то образом спроектировать класс CSRequest, поэтому значение onSend будет переопределено расширением класса CSRequest, но в то же время будет передаваться как параметр конструктора.