1. ホーム
  2. oop

[解決済み] ポリモーフィズム - たった2つの文で定義する【非公開

2023-04-18 09:32:33

質問

私は他の定義や説明を見ましたが、どれも私を満足させるものではありませんでした。私は、誰かが、コードや例を使わずに、せいぜい2文程度でポリモーフィズムを定義できるかどうかを見てみたいのです。私は、「人/車/缶の開閉装置があるわけですが...」とか、その語源を聞きたくはありません(あなたがポリとモーフの意味を知っていても誰も感心しません)。もし、あなたが多形性とは何かを非常によく理解し、英語に長けているのであれば、この質問に対して、濃密ではあるけれども短い定義で答えることができるはずです。もし、あなたの定義がポリモーフィズムを正確に定義しているが、非常に密で何度も読み返す必要があるなら、それはまさに私が求めているものです。

なぜ2文だけなのでしょうか?なぜなら、定義は短くて知的なものだからです。説明は長く、例とコードを含んでいます。説明のためにここを見てください(これらのページの答えは私の質問に対して満足のいくものではありません)。

ポリモーフィズムとオーバーライドとオーバーロードの比較

ポリモーフィズムをできるだけ簡単に記述してみましょう。

なぜ私はこの質問をするのでしょうか?なぜなら、私も同じ質問をされ、(かなり高い私の基準では)満足のいく定義を思いつくことができないことがわかったからです。このサイトの素晴らしい頭脳の持ち主の誰かがそれをできるのかどうか見てみたいのです。

もしあなたが本当に2文の要件を作ることができないなら(定義するのが難しいテーマである)、オーバーしても構いません。アイデアは、実際にポリモーフィズムが何であるかを定義する定義を持つことであり、それが何をするか、またはそれを使用する方法(違いを理解しますか)を説明するものではありません。

どのように解決するのか?

ポリモーフィズムは、ある種の契約を表現し、潜在的に多くの型がその契約を(クラス継承を行うかどうかに関わらず)それぞれの目的に応じて異なる方法で実装することを可能にします。コード を使用して は、どの実装が関与しているかを気にする必要はなく、契約が遵守されることだけを気にすればよいのです。

(*) とにかく理想的なケースでは、明らかに、呼び出し側のコードが非常に意図的に適切な実装を選択していることがよくあります!