从子类继承后变量不会更新

问题描述 投票:0回答:1

让我们说我正在Kotlin中处理以下代码:

class Human(var head: Head, var body: Body, var legs: Legs) {
   var height = this.head.length + this.body.length + this.legs.length
}

class Head(var length: Int) { }

class Body(var length: Int) { }

class Legs(var length: Int) { }

为什么在初始化时返回正确的高度Human.height -> x,但是如果对各个零件进行了更改却不会更新?我使用这些子类的格式是否正确?我已经找到了有关正确使用子类的一些文档,但是还没有找到与我的用例匹配的结构。预先感谢!

android inheritance kotlin subclass
1个回答
0
投票

您没有实现getter,只需在初始化height时简单地计算并分配Human值。

您正在寻找的是getter实现:

class Human(var head: Head, var body: Body, var legs: Legs) {
    var height
      get() = this.head.length + this.body.length + this.legs.length
}
© www.soinside.com 2019 - 2024. All rights reserved.