【发布时间】:2020-11-27 15:51:16
【问题描述】:
我在 Kotlin 中有一个抽象类,它有一个抽象字段:
abstract val maxSemitoneDistance: Float
我有两个类从这个抽象类扩展并覆盖这个值,定义它,例如:
override val maxSemitoneDistance = 1f
我需要在父类的构造函数上使用这个值,这应该没问题,因为在运行时它将由子类定义。但是当我尝试使用它时,该值始终为0!这里发生了什么?我尝试将其更改为抽象方法并以相同的效果实现它,得到 0 而不是真正的覆盖值。
【问题讨论】:
-
不要将其设为
abstract,而是将其放在主构造函数中。
标签: oop kotlin inheritance abstract-class