初心者用kotlin

kotlinのメモです。

546 views

引数付きのクラスを継承する場合

open class Person(var name:String, var age:Int) {

    open fun show() {
        println("${name}は${age}歳です")
    }

    fun list() {
        println("${name}, ${age}")
    }
}

class Worker(val job:String, name:String, age:Int):Person(name, age){

    override fun show() {
        println("${name}は${age}歳です。仕事は${job}です")
    }
}

fun main(args:Array<String>) {
    val w = Worker("programmer", "konishi", 41 )
    w.show()
    w.list()
}

Personクラスは引数にnameとageを取る。
WorkerクラスはPersonクラスを継承し、さらに、引数にjobを取るような場合。
12行目に記すように書く。

うっかりすると、こんな感じに書いてしまいそうだが

class Worker(val job:String, name:String, age:Int):Person(val name:String, val age:Int) {
}

継承するクラスにはパラメーターとして渡すので、valなどの定義はいらない。
ただし、Workerクラスに定義しているnameとage、Personに定義しているnameとageは同じ変数名にしておく必要がある。

同じであれば、子クラスに新しく追加する変数の順序は関係ない。
以下でもOK。

class Worker(name:String, private val job:String, age:Int):Person(name, age){

    override fun show() {
        println("${name}は${age}歳です。仕事は${job}です")
    }
}

Page 9 of 36.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626