事实上,你不需要
abstract class
interface
属性,例如:
interface B {
val id: Int?
}
// v--- override the interface property by `override` keyword
data class A(override var id: Int) : B
一
界面
没有构造函数,因此无法通过调用构造函数
super(..)
关键字,但您可以使用
抽象类
相反Hower,a
data class
primary constructor
覆盖
这个
例如:
// v--- makes it can be override with `open` keyword
abstract class B(open val id: Int?)
// v--- override the super property by `override` keyword
data class A(override var id: Int) : B(id)
// ^
// the field `id` in the class B is never used by A
// pass the parameter `id` to the super constructor
// v
class NormalClass(id: Int): B(id)