継承はクラス名のあとに:(コロン)で継承元のクラス名を書いて親クラスのコンストラクタの引数を指定します。また、クラスをそのまま宣言するとデフォルトでは継承できないクラスになるので親クラスにはopenを付ける。こんなふうになる。
open class hoge {
init {
println("Init hoge")
}
}
class hoge2:hoge() {
init {
println("Init hoge2")
}
}
コンストラクタがある場合は、こんな感じだ。
open class hoge(a:String) {
var hoge = a
init {
println("Init hoge")
}
}
class hoge2(a:String):hoge(a) {
init {
println("Init hoge2")
}
}
セカンダリコンストラクタで親クラスのコンストラクタを呼ぶ場合は、superを使う。こんな感じ。
class hoge2:hoge {
constructor(a:String):super(a) {}
init {
println("Init hoge2")
}
}
ちなみに上のソースではセカンダリコンストラクタで何も処理してないので最期の{}は省略できる。
コメント