このブログは46歳からプログラミング(Java)を学んでいる、ぐーたら女の備忘録です。
アナログ女、プログラミングと無縁だった女がどこまで成長できるのか!?
46歳Javaの学び|ポリモーフィズム(多態性)は絵に描いてみるべし!!
オブジェクト指向の3大機能のひとつ「ポリモーフィズム(多態性)」
めっちゃ難しいですね~。
前回の投稿で、ポリモーフィズムを実現可能にするのは「代入」だってことを書いてみたんだけど、今日はその続き。
ポリモーフィズムの理解のコツを46歳の私目線でお届けしま~す☆
コツ① 絵に描いてみてウソにならないか!?
ポリモーフィズム(多態性)のポイントは「ざっくり」。
前回の投稿で、人間があるものを「ざっくり」に捉えることを、プログラムでは「代入」で実現可能にすることを理解しました。
例えばこちら
バナナをざっくり果物と捉える書き方
Fruit f = new Banana();
このコードがエラーにならないのは、代入が許される判断基準に合格しているからなんですが、この合格基準が「絵に描いてみてウソにならないか!?」
上の絵のように、果物に魚(アジ)が入ってるっておかしいですよね。
現実世界で「魚は果物の一種」ではない。
こんな感じで絵に描いてみて、ウソだと「代入」できないので、次のコードは全部エラーになる。
Fruit a = new Fish();
Fruit a = new Meet();
魚も、肉も、果物の一種じゃないので「代入」できないってこと。
「~の一種」のことを「is-aの関係」って言うけど
「is-aの関係」ってのはつまり、絵で描いてみてウソじゃない関係。
コツ② 「is-aの関係」は「継承関係」
人間だから絵が描けるけど、プログラムは絵が描けないので、「is-aの関係」を「継承」で判断します。
「継承関係」はコードを書く開発者が、「extends」「implements」を使って、「is-aの関係」をJavaに伝えます。
なので、絵に描いてみてウソじゃなかったとしても、Javaの継承関係でクラスが繋がってなければ「代入」はできな~い!!
なるへそ~。
オブジェクト指向を学び始めての初の「なるへそ~」が自分の中で出ました☆
オブジェクト指向の「継承」と「ポリモーフィズム」の繋がりが分かってきたかも~^^
分からないことが、分かったことが成長☆☆☆
アナログ、プログラミング初心者でも、46歳という年齢でも、諦めなーい。
どこまで成長できるか!?
どんな未来の自分に出会えるか!?
ということで、今日の学びはここまで。