不能从最终的类继承

我刚刚创建了我的第一个android库。 在另一个应用程序中,我想从它扩展一个类。 但它显示了一个错误:“不能从最终的'library.com.kukaintro.activities.KukaIntro'”扩展。 在这里输入图像描述

在这里输入图像描述

正如你所看到的,没有一个超类是最终的。 如果我点击超级类KukaIntro(在应用程序不在图书馆)它说: 在这里输入图像描述

这是我第一次创造一个图书馆。 有人可以告诉我怎样才能解决这个问题?

在Kotlin中,与Java不同的是,所有的类默认都是隐式标记的。 如果要从类继承,则必须在类声明之前显式添加open关键字。

 open class Base(p: Int) { } 

如果要覆盖超类中的任何函数,则还必须将open关键字添加到超类中的这些函数中,并且override关键字对于子类中的重写函数是强制的。

来自doc的示例:

 open class Foo { open fun f() { println("Foo.f()") } open val x: Int get() = 1 } class Bar : Foo() { override fun f() { super.f() println("Bar.f()") } override val x: Int get() = super.x + 1 } 

Kotlin文档: https : //kotlinlang.org/docs/reference/classes.html#inheritance

这里是关于这个语言设计的讨论: https : //discuss.kotlinlang.org/t/classes-final-by-default/166

使用打开的注释,在这里阅读文档。 https://kotlinlang.org/docs/reference/classes.html

Interesting Posts