mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 15:53:37 +00:00
26 lines
570 B
Kotlin
26 lines
570 B
Kotlin
trait IActing {
|
|
fun act(): String
|
|
}
|
|
|
|
class CActing(val value: String = "OK"): IActing {
|
|
override fun act(): String = value
|
|
}
|
|
|
|
// final so no need in delegate field
|
|
class Test(val acting: CActing = CActing()): IActing by acting {
|
|
}
|
|
|
|
// even if open so we don't need delegate field
|
|
open class Test2(open val acting: CActing = CActing()): IActing by acting {
|
|
}
|
|
|
|
// even if open the backing field is final, so we don't need delegate field
|
|
class Test3() : Test2() {
|
|
override val acting = CActing("OKOK")
|
|
}
|
|
|
|
fun box(): String {
|
|
val test = Test()
|
|
return test.act()
|
|
}
|