为什么科特林脚本文件不能在同一个文件都继承类?

问题描述 投票:0回答:1

我拧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:{特斯塔

class inheritance kotlin compilation final
1个回答
1
投票

如果你继承另一个类和基类有主构造,它必须被初始化。您TestA有默认的主构造器,所以它应该是这样的:

class TestB : TestA() {
    override fun testOpen() {
        super.testOpen()
    }
}

另一个问题是,在科特林类是最终默认情况下,你应该明确地定义他们可以扩展:

open class TestA

检查this例子以获取更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.