kotlin エラー「error: this type is final, so it cannot be inherited from」の解決方法
kotlinで、エラー「error: this type is final, so it cannot be inherited from」の解決方法を記述してます。「open」を使用してないクラスから継承しようとした場合に発生します。
環境
- OS windows11 home
- java 17.0.2
- kotlin 1.6.10-release-923
エラー全文
以下のコードで発生。
class Hoge() {
open fun f() { println("Hoge") }
}
class Foo() : Hoge() {
override fun f() { println("Foo") }
}
fun main(){
val foo = Foo()
foo.f()
}
エラーメッセージ
hello.kt:9:15: error: this type is final, so it cannot be inherited from
class Foo() : Hoge() {
原因
親クラスに「open」を使用せずに、継承しようとしているため
対処法
親クラスに「open」を使用する
open class Hoge() {
open fun f() { println("Hoge") }
}
class Foo() : Hoge() {
override fun f() { println("Foo") }
}
fun main(){
val foo = Foo()
foo.f() // Foo
}
-
前の記事
GAS スプレッドシートのシートのカラーを取得する 2022.11.04
-
次の記事
javascript エラー「Uncaught TypeError: xxx.cloneNode is not a function」の解決方法 2022.11.04
コメントを書く