我使用这里描述的接口委托。有没有办法使用它,但是重写并显式调用父类(委托)?
这些方面的内容(无法编译):
class Rect(val width: Int, val height: Int, position: Position) : Positionable by DefaultPositionable(position) {
override fun getPosition() {
val parent = super.getPosition()
return parent.copy(x = parent.x + 1)
}
}
delegate
在这种情况下,您将无法访问。作为解决方法,您可以使用下一种方法
class Rect(
val width: Int,
val height: Int,
val pos: Position,
private val positinable: Positionable = DefaultPositionable(pos)
) : Positionable by positinable {
override fun getPosition(): Position {
val parent = positinable.getPosition()
return parent.copy(x = parent.x + 1)
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句