Проблема с сеттером
open class NumInc(var number: Int, step: Int) {
constructor(): this(0, 1)
var step = step
set(value) {
field = if (value != 0)
value
else
1
}
open fun inc() { number += step }
open fun dec() { number -= step }
}
class NumDouble(number: Int, step: Int): NumInc(number, step) {
override fun inc() { number += step * 2}
override fun dec() { number -= step * 2}
}
fun main() {
val a = NumDouble(3, 0)
val b = NumInc(3, 0)
a.inc()
b.inc()
println(a.number)
println(b.number)
}
По идее, в b step должен поменяться с 0 на 1, и вывод должен быть "3 4", а вывод - "3 3".