kotlin エラー「error: ‘x’ in ‘xxx’ is final and cannot be overridden」の解決方法
kotlinで、エラー「error: ‘x’ in ‘xxx’ is final and cannot be overridden」の解決方法を記述してます。「open」を使わずにオーバーライドした際などに発生します。
環境
- OS windows11 home
- java 19.0.1
- kotlin 1.7.20-release-201
エラー全文
以下のコードで発生。
open class Hoge() {
open fun f() { println("hello") }
fun m() { println("world") }
}
class Foo() : Hoge() {
override fun f() { println("こんにちわ") }
override fun m() { println("せかい") }
}
fun main(){
val foo = Foo()
foo.f()
}
エラーメッセージ
error: 'm' in 'Hoge' is final and cannot be overridden
override fun m() { println("せかい") }
^
原因
「open」を使用せずに、メソッドをオーバーライドしようとしているため
対処法
「open」を使用する
open class Hoge() {
open fun f() { println("hello") }
open fun m() { println("world") }
}
class Foo() : Hoge() {
override fun f() { println("こんにちわ") }
override fun m() { println("せかい") }
}
fun main(){
val foo = Foo()
foo.m() // せかい
}
-
前の記事
WinSCP ファイル名をコピーするショートカットキー 2023.08.23
-
次の記事
GAS 現在アクティブなシートをコピーする 2023.08.23
コメントを書く