Product Design, Manufacturing & Innovation Resources
» ポリモーフィズム(プログラミング)

ポリモーフィズム(プログラミング)

1967
  • Christopher Strachey
Computer programming workspace demonstrating polymorphism with code snippets.

(画像はイメージです)

ポリモーフィズムは、ギリシャ語で「多くの形」を意味し、異なるクラスのオブジェクトを共通のスーパークラスのオブジェクトとして扱うことを可能にします。これにより、次のような単一のインターフェースが可能になります。 方法 一般的なアクションのクラスに使用される名前。具体的なアクションは、実行時のオブジェクトの正確な型によって決定されます。これは多くの場合、メソッドのオーバーライドによって実現されます。

Polymorphism is a powerful concept that allows for writing flexible and decoupled code. The most common form in OOP is subtype polymorphism, which is enabled by inheritance and method overriding. When a subclass provides a specific implementation for a method that is already defined in its superclass, it is called overriding. A variable of the superclass type can refer to an object of any of its subclasses. When a method is called on this variable, the version of the method that gets executed is the one belonging to the object’s actual class, not the variable’s type. This decision is made at runtime, a process known as dynamic dispatch or late binding.

例えば、スーパークラス「Shape」に「calculateArea()」メソッドがあるとします。サブクラス「Circle」や「Rectangle」などは「Shape」を継承し、「calculateArea()」の独自の実装を提供できます。プログラムは、「Circle」と「Rectangle」の両方のインスタンスを含む「Shape」オブジェクトのリストを持つことができます。リストを反復処理して各要素に対して「calculateArea()」を呼び出すと、各図形に対して適切な計算式が自動的に使用されます。これにより、各オブジェクトの型をチェックするための長いif-else文やswitch文が不要になり、より簡潔で拡張性の高いコードになります。新しい図形は、それらを処理するコードを変更することなくシステムに追加できます。

UNESCO Nomenclature: 1203
コンピュータサイエンス

タイプ

抽象システム

混乱

増分

使用法

広く普及している

前駆物質

  • C言語のような言語における関数ポインタの概念
  • 一般的なプログラミング概念
  • 継承は、サブタイプ多型に必要なクラス階層を提供する。
  • 柔軟で拡張可能なソフトウェアシステムの必要性

アプリケーション

  • 単一の `draw()` メソッド呼び出しを使用して、さまざまな形状 (円、正方形) を描画する
  • 汎用的な print() 関数を使用して、さまざまなドキュメントタイプ (pdf、word) を処理する
  • implementing user interface event handlers
  • 異なるが関連性のある型のオブジェクトを格納できる汎用コレクション
  • 依存性注入フレームワーク

特許:

NA

潜在的なイノベーションのアイデア

ボットによるトラフィック(現在1日あたり4万件以上)を排除するため、このコンテンツはコミュニティメンバー限定となっています。
> ログイン < または > 登録 < (100%無料)でこれにアクセスできます。他のすべての制限付きコンテンツとツールも同様です。

関連キーワード: ポリモーフィズム、オーバーライド、動的ディスパッチ、遅延バインディング、サブタイプ、インターフェース、抽象化、オブジェクト指向プログラミング、メソッドオーバーライド、ランタイム。

歴史的背景

ポリモーフィズム(プログラミング)

1956
1960
1967
1967
1970
1970
1970
1953
1960
1960
1967
1970
1970
1970
1970

(日付が不明または関連性がない場合、例えば「流体力学」などでは、その注目すべき出現時期の概算値が提示されます。)

関連する発明、革新、および技術原理

フルサイズの画像とダウンロードは、登録会員のみが100%無料で利用できます。