Files

23 lines
712 B
Kotlin

// MODE: inheritors
/*<# block [ 1 Inheritor] #>*/
abstract class SomeClass {
/*<# block [ 1 Override] #>*/
abstract val someAbstractProperty: Int
/*<# block [ 2 Overrides] #>*/
open val nonAbstractProperty: Int = 10
open val notToBeOverriddenProperty: Int = 10
}
/*<# block [ 1 Inheritor] #>*/
open class DerivedClassA : SomeClass() {
override val someAbstractProperty: Int = 5
/*<# block [ 1 Override] #>*/
override val nonAbstractProperty: Int = 15 // NOTE that DerivedClassB overrides both getter and setter but counted once
}
class DerivedClassB : DerivedClassA() {
override var nonAbstractProperty: Int = 15
get() = 20
set(value) {field = value / 2}
}