EC8*_*4B4 2 constructor instantiation instance default-parameters kotlin
我有B带有 to 参数的类x,并y从A带有x可选参数的类扩展(所有参数都非空),我如何B以一种方式定义它是可选的,并且它将在构造函数中使用可选值A
val y = 0
val b = if (y == 0) B(y) else B(y, 0)
class B(y: Int, x: Int = 238) : A(x)
open class A(x: Int = 238)
Run Code Online (Sandbox Code Playgroud)
x在这里,我已经在构造函数中设置了默认值,B有什么方法可以实现这一点,而不必在中设置默认值B
您可以使用辅助构造函数来实现此目的。
class B : A {
constructor(y: Int): super()
constructor(y: Int, x: Int): super(x)
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Kotlin 文档。
编辑:
正如 @PietroMartinelli 提到的,如果您需要主构造函数,则辅助构造函数将不起作用。如果派生类具有主构造函数,则可以(并且必须)使用主构造函数的参数就地初始化基类。
| 归档时间: |
|
| 查看次数: |
1167 次 |
| 最近记录: |