kotlin クラスを継承する
kotlinで、クラスを継承する手順を記述してます。ここでは、実際にクラスを継承してオーバーライドしたサンプルコードを記述してます。
環境
- OS windows11 home
- java 19.0.1
- kotlin 1.7.20-release-201
手順
クラスを継承するには、以下の構文で可能です。
// 親クラス
open class クラス名(変数名 : データ型){
}
// 子クラス
class クラス名(変数名 : データ型) : 親クラス(引数) {
}
実際に、クラスを継承してオーバーライドしてみます。
open class Hoge() {
open fun f() { println("Hoge") }
fun nf() {}
}
class Foo() : Hoge() {
override fun f() { println("Foo") }
}
fun main(){
val hoge = Hoge()
hoge.f() // Hoge
val foo = Foo()
foo.f() // Foo
}
オーバーライドされていることが確認できます。
「open」を使用せずに、継承するとエラーとなります。
class Hoge() {
open fun f() { println("Hoge") }
fun nf() {}
}
// error: this type is final, so it cannot be inherited from
class Foo() : Hoge() {
override fun f() { println("Foo") }
}
fun main(){
val hoge = Hoge()
hoge.f()
val foo = Foo()
foo.f()
}
オーバーライドも「open」がないと、エラーが発生します。
open class Hoge() {
open fun f() { println("Hoge") }
fun nf() {}
}
class Foo() : Hoge() {
override fun f() { println("Foo") }
override fun nf() { println("Foo") }
}
// error: 'nf' in 'Hoge' is final and cannot be overridden
// override fun nf() { println("Foo") }
fun main(){
val hoge = Hoge()
hoge.f()
val foo = Foo()
foo.f()
}
-
前の記事
google スプレッドシート ハイパーリンクを開くショートカットキー 2024.01.09
-
次の記事
Oracle Database ログイントリガーを作成する 2024.01.10
コメントを書く