ポリモーフィズム(多態性)

ポリモーフィズムは、オブジェクト指向プログラミングにおいて、異なるクラスのオブジェクトが、同じインターフェースを通じて異なる振る舞いを示すことができる性質のことです。

ポリモーフィズムの概要と目的

ポリモーフィズム(Polymorphism)は、ギリシャ語の「poly(多くの)」と「morph(形)」に由来し、日本語では「多様性」と訳されます。

これは、1つのメソッド(操作)が、それを受け取るオブジェクトのクラスによって異なる動作をするという性質を指します。これにより、開発者は特定のクラスに依存することなく、より汎用的で柔軟なコードを書くことができます。

例えば、draw()というメソッドが、Circleクラスのオブジェクトでは円を描き、Squareクラスのオブジェクトでは四角形を描くといった振る舞いを実現します。

主な目的は、コードの再利用性を高め、保守を容易にし、拡張性を向上させることです。ポリモーフィズムは、オブジェクト指向の3大原則(カプセル化、継承、ポリモーフィズム)の一つとされています。

ポリモーフィズムの実現方法

ポリモーフィズムは、主に以下の2つの方法で実現されます。

1. メソッドのオーバーライド(Override)

  • 概要: 親クラス(スーパークラス)で定義されたメソッドを、子クラス(サブクラス)で再定義することです。
  • 動作: 親クラスのメソッドを継承しつつ、子クラス独自の振る舞いを実装します。これにより、同じメソッド名を持つ複数のメソッドが、オブジェクトの型に応じて呼び分けられます。
  • : AnimalクラスにmakeSound()メソッドがあり、DogクラスとCatクラスがそれぞれこれをオーバーライドして、異なる鳴き声を出力するようにします。

2. メソッドのオーバーロード(Overload)

  • 概要: 同じクラス内で、同じ名前のメソッドを複数定義し、引数の数や型を変えることです。
  • 動作: コンパイラは、呼び出し時に渡された引数に基づいて、どのメソッドを使用するかを自動的に判断します。
  • : print()というメソッドが、print(int value)(整数を出力)とprint(String text)(文字列を出力)のように定義される場合です。

3. インターフェース

  • 概要: 実装を持たないメソッドの集合を定義したものです。複数のクラスが同じインターフェースを実装することで、ポリモーフィズムを実現できます。
  • 動作: 異なるクラスが同じインターフェースを実装すれば、インターフェースの型としてこれらのオブジェクトを扱えます。
  • : Movableというインターフェースにmove()メソッドを定義し、CarクラスとBicycleクラスがこれを実装することで、どちらも同じように動かすことができます。

ポリモーフィズムは、複雑なシステムをよりシンプルに、そして柔軟に設計するための強力な武器となります。

関連用語

メソッド | 今更聞けないIT用語集
オブジェクト指向プログラミング | 今更聞けないIT用語集
ソフトウェアエンジニアリング

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。

お問い合わせ・ご相談

「システム構築時から大分時間が経過しているのでセキュリティ対策の状況が不安がある」「脆弱性診断を受けたい」「サイバーセキュリティ対策に不安がある。」など、サイバーセキュリティ対策・情報漏えい対策についてのご質問・ご相談などございましたら、何でもお気軽にお問い合わせください。