我拧my.kts脚本,并用它来运行科特林,我有这样的:
class TestA {
init {}
open fun testOpen() {
println(this)
}
}
class TestB : TestA {
override fun testOpen() {
super.testOpen()
}
}
它编译失败,他说:
error: this type is final, so it cannot be inherited from
class TestB : TestA {
^
basic.kts:39:15: error: this type has a constructor, and thus must be initialized here
类TESTB:{特斯塔
如果你继承另一个类和基类有主构造,它必须被初始化。您TestA
有默认的主构造器,所以它应该是这样的:
class TestB : TestA() {
override fun testOpen() {
super.testOpen()
}
}
另一个问题是,在科特林类是最终默认情况下,你应该明确地定义他们可以扩展:
open class TestA
检查this例子以获取更多信息。