スッキリ分かるJava入門 10日目
今日やったこと
これはぜひマスターしたい、多様性(ポリモーフィズム)です。
覚えておきたいこと
コンピューターくん!これとソレは同じようなもんだから・・同じように捉えてくれ!!つってあげること。
特に決まった文法はなし、代入先をザックリ見たいクラスに変えるのよ!newは具体的なクラスでお願いね。
そこらへんに入れても変じゃないか?問題ないか?を判断する材料がextendsやimplementsなんだね。
ただ、そのままでは親のメソッドしか呼べない=中身限定のメソッドは呼べない。コンピューターくんはあくまで型でしか判断できないので・・型は呼べるメソッド!中身はどう動くか!!
それでも呼びたい場合はキャストせよ。ただし、ダウンキャストは実行するまでエラーが分からない恐れアリ。
今んとこ呼び出せるメソッドが減る感じしかしないけど。。何が便利なのか?それは、似たようなもんを一個のざっくり配列にまとめて格納してまとめて処理出来たりするんだ!
もっと便利なことがある!例えばこんな感じで親クラスにattack()持ってれば、それぞれ継承して独自に実装したattackを実行してくれるワケ!もう分岐はいらないぞ!
Monster[] monsters = new Monster[2]; monsters[0] = new Matango("トリップマッシュ","A"); monsters[1] = new PoisonAgeha("毒吹きアゲハ","A"); for(Monster m : monsters){ m.attack(party[0]); }
(要素数2で配列作ってるから[0][1]なのよ。)
感想
拡張for文はよく使う。同じメソッドで分岐せずに処理を分けられるポリモーフィズム!使いこなせるようになりテーゼ
ホスィーアプリ
- 積みゲー管理
- 単語帳
- 勉強スタンプカード