| // 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} |
| } |