blitz-time アプリ開発ブログ

Androidアプリ開発などのTips集

【Kotlin入門】クラスメソッドのオーバーライド

派生クラスで親クラスのメソッドをオーバーライドします。

内容
メソッドをオーバーライドする際にはメソッドに"override"を付加します。また、派生元のクラスメソッドは"open"である必要があります。"open"がないと、”final and cannot be overridden”エラーが発生します。

コード

open class Person(val mName:String, val mAge:Int ) {
    var mType = "不明"
    open fun printType(){  // オーバーライド可能にするために"open"の付加が必要。
        println(mType)
    }
}

class Adult : Person {
    constructor(mName:String,mAge:Int): super(mName,mAge)
    init{
		mType = "大人"        
    }
    override fun printType(){  // オーバーライドするには"override"の付加が必要
        println(mType+" 年齢:"+mAge)
    }
}

fun main(args: Array<String>) {
    val p1 = Person("田中はじめ",45)
    p1.printType()
    val p2 = Adult("山本信二",50)
    p2.printType()
}

結果

不明
大人 年齢:50