[英]kotlin declaring Object within sealed class and initialized
sealed class StockLabel : Label() {
object OutOfStockLabel : StockLabel()
}
我知道 kotlin 中的 sealed class 是隐式抽象的,如果这样做我们会得到编译错误。 但是我看到了上面代码的用法,'OutOfStockLabel' 是在'StockLabel' sealed class 中声明的,也用'StockLabel()','StockLabel()' 我认为应该是 'OutOfStockLabel' 的类型但是是吗在这里进行初始化还是?
需要一些帮助来理解这里的代码案例。
虽然语法看起来很相似,但这段代码:
object OutOfStockLabel : StockLabel()
是定义 class 的语法,而不是创建抽象 class 的实例。您正在声明一个子类(在本例中为object
),其主构造函数(对于object
是隐式的)调用抽象类的构造函数。 这对于抽象类是允许的。 如果不能,则不可能创建抽象 class 的任何子类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.