Loading [MathJax]/jax/output/CommonHTML/jax.js

初心者用kotlin

kotlinのメモです。

830 views

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

  1. open class Person(var name:String, var age:Int) {
  2. open fun show() {
  3. println("${name}${age}歳です")
  4. }
  5. fun list() {
  6. println("${name}, ${age}")
  7. }
  8. }
  9. class Worker(val job:String, name:String, age:Int):Person(name, age){
  10. override fun show() {
  11. println("${name}${age}歳です。仕事は${job}です")
  12. }
  13. }
  14. fun main(args:Array<String>) {
  15. val w = Worker("programmer", "konishi", 41 )
  16. w.show()
  17. w.list()
  18. }

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

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

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

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

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

  1. class Worker(name:String, private val job:String, age:Int):Person(name, age){
  2. override fun show() {
  3. println("${name}${age}歳です。仕事は${job}です")
  4. }
  5. }

Page 9 of 36.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

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

ツイッター

@darkimpact0626