プログラミング PR

オブジェクト指向の多態性(ポリモーフィズム)についてわかりやすく解説

polymorphism
記事内に商品プロモーションを含む場合があります

本記事ではオブジェクト指向多態性ポリモーフィズムについて解説しています。

エンジニアの副業におすすめ!

エンジニア、デザイナー向けの週2、3日のお仕事紹介【ITプロパートナーズ】【公式HP】https://itpropartners.com/

  • 週3日〜の案件を数多く扱っている
  • エンド直ゆえに高単価案件が多い
  • フルリモート案件など、柔軟な働き方に対応した案件が多い
  • トレンド技術を取り入れた魅力的な案件が豊富にある
  • 専属エージェントが希望に沿った案件を紹介してくれる

\ 最短60秒で登録可能! /
無料会員登録
案件を探す

engineer-sidejob-agent
【土日リモート可】エンジニアにおすすめの副業エージェント21選エンジニアにおすすめの副業エージェントは?本記事では数ある副業案件を扱うエージェントの中から現役エンジニアである筆者が厳選して21社紹介しております。副業に興味のあるエンジニアは要チェックです。...

オブジェクト指向の多態性・ポリモーフィズムとは?

system-kanshi

オブジェクト指向の学習の際に出てくる”多態性ポリモーフィズム”とは、同じ命令を送ったにも関わらずそれぞれが独立した固有の処理を行う特性を指します。

例えば以下のような図形クラスから継承によって作られた子クラス群があるとしましょう。

多態性/ポリモーフィズム

各子クラスは親クラスから継承したWriteメソッドをオーバーライドしているとします。

そして、これらの子クラス群に同じ命令を送ると・・・以下の図のように動作するのです。

多態性/ポリモーフィズム

このように同じ呼び出し方なのに異なる動作をするという特性から多態性/ポリモーフィズムという名前がつけられています。

オブジェクト指向における多態性・ポリモーフィズムとは、同じ命令を送ったにも関わらずそれぞれが独立した固有の処理を行うという特性のことを指す。

多態性・ポリモーフィズムの実現方法

sre

前章で多態性・ポリモーフィズムとはどんなものか大枠は理解できたかと思います。では、そんな多態性・ポリモーフィズムを実現するにはどうすればいいのでしょうか?

多態性・ポリモーフィズムを実現するための文法は特にない

実は多態性・ポリモーフィズム特有の文法などは存在せず、通常のプログラムでも使う「代入の文法」で実現可能となります。

以下Javaの場合の例。

多態性/ポリモーフィズム

ただし、何も考えず代入の文法を用いるだけでは多態性/ポリモーフィズムは実現することができず、ここで”継承の知識が必要”となってきます。

inheritance
【完全版】オブジェクト指向の継承についてわかりやすく解説オブジェクト指向の継承について初心者向けにわかりやすく解説。継承とは、既存のクラスに基づき新たなクラスを定義するための機能で、継承の目的はis-aの関係を明示的に表すことになります。...

多態性・ポリモーフィズムの実現には継承の知識も必要

実は先ほどのJavaコードで代入できるパターンと代入できないパターンが存在します。

代入できるパターンというのはズバリ、継承関係における下(子)から上(親)方向に向かっての代入です。

多態性/ポリモーフィズム

図で示したように継承関係にないクラスからの代入や上から下方向、つまり親側から子側への代入もNGになります。

多態性・ポリモーフィズムは継承関係の子から親への代入を通じて実現可能。

多態性・ポリモーフィズムのメリット

graph

多態性/ポリモーフィズムのイメージと実現方法は理解できたかと思うので、本章ではそのメリットについて解説していきたいと思います。

メリット①同一視して配列を利用する

先ほど出した図形クラスを例にとると、三角も丸も四角も言ってみれば全て図形なので、以下のように配列に格納することができます。(コードはJavaを用いている)

多態性/ポリモーフィズム

このように配列でまとめることで例えば、わざわざ個別に処理を書かずともループを回して一括で処理なんてこともできるようになるわけです。

多態性/ポリモーフィズム

メリット②同一視して引数を受け取る

同一視して引数を受け取るというのは実は冒頭の例が該当しています。(以下の図)

多態性/ポリモーフィズム

これはWriteメソッドが引数としてZukeiを受け取っているからこそ成り立つ図なのです。

多態性/ポリモーフィズムのメリットとして、同一視して配列を利用できたり、同一視して引数を受け取ることができることが挙げられる。

多態性・ポリモーフィズム【まとめ】

多態性まとめ
  • 多態性・ポリモーフィズムとは、同じ命令を送ったにも関わらずそれぞれが独立した固有の処理を行うという特性を指す。
  • 多態性・ポリモーフィズムは継承関係の子から親への代入を通じて実現することができる。
  • 多態性・ポリモーフィズムのメリットとして、同一視して配列を利用できたり、同一視して引数を受け取ることができることが挙げられる。

本記事で紹介した内容はあくまで触りの部分だけなので、今後の学習が大切になります。

以下の記事でオブジェクト指向について学べる書籍を紹介しているので、より深い内容を学びたいという方は記事を覗いてみてください。

object-pic
【2024年最新】オブジェクト指向のおすすめ本5選オブジェクト指向を学ぶのにおすすめの本を初心者向けに紹介。どの本も良書なので一冊を繰り返し読み返すことでオブジェクト指向をマスターすることができるでしょう。...
たろう
たろう
ここまで記事を読んでいただきありがとうございました♪

本記事が多態性ポリモーフィズムの理解促進に少しでもお役に立てたのなら幸いです。

object-pic
【2024年最新】オブジェクト指向のおすすめ本5選オブジェクト指向を学ぶのにおすすめの本を初心者向けに紹介。どの本も良書なので一冊を繰り返し読み返すことでオブジェクト指向をマスターすることができるでしょう。...
object
【初心者向け】オブジェクト指向とは?わかりやすく解説オブジェクト指向とは?という疑問に対して初心者向けにわかりやすく解説しました。オブジェクト指向とは部品化の考え方を指し、人間が把握しきれない複雑さを克服する手助けをしてくれるものです。...
shukatu
【新卒】ITエンジニア志望の学生におすすめ就活サイト・エージェント10選エンジニア志望だがIT企業の探し方がよくわからないし、就活を有利に進めるためのサポートを受けたい。そんな学生におすすめしたいのが新卒就活サイト・エージェント。本記事では新卒就活サイト・エージェントの中でも特におすすめしたいものを厳選して紹介しております。...
second-new-graduate-engineer
【第二新卒向け】未経験からエンジニアを目指す人におすすめの転職エージェント5選本記事ではそんな数ある転職エージェントの中でも特に、第二新卒で未経験からエンジニアを目指す人におすすめの転職エージェントを厳選して5社紹介していきたいと思います。...
engineer-market-value-diagnosis
【3分でできる】エンジニアとしての市場価値診断エンジニアとしての市場価値を診断するには?本記事ではエンジニアにとって市場価値を把握しておくことの重要性や市場価値診断ツールの紹介などしております。...
engineer-sidejob-agent
【土日リモート可】エンジニアにおすすめの副業エージェント21選エンジニアにおすすめの副業エージェントは?本記事では数ある副業案件を扱うエージェントの中から現役エンジニアである筆者が厳選して21社紹介しております。副業に興味のあるエンジニアは要チェックです。...
freelance-engineer-agent
【2024年最新】フリーランスエンジニアにおすすめのエージェント26選独立後に案件を安定的に獲得できるか不安・・・。そんなエンジニアの方におすすめなのがフリーランスエージェントです。本記事では数あるエージェントの中でも特におすすめしたいエージェントを7社ご紹介いたします。...
こちらの記事もおすすめ!

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です