2

私はまだ大学生ですが、Java について学んでいるときに 1 種類のポリモーフィズムについて聞いたことしか覚えていません。しかし、C# のクラスにいたとき、教授が 4 種類のポリモーフィズムについて話していたのを覚えています。

私は、より具体的なクラス内で特定の動作をサブクラス化して定義すること、およびインターフェイスの署名により、基本クラスの単一のメソッドでそれらの特定の動作を呼び出すことができることだけを認識しています。

他のタイプにはどのようなものがありますか? また、上記で教えられた唯一のタイプと同じくらい重要ですか? それが教えられていない理由ですか?

4

1 に答える 1

5

はい、4種類の多型があります

  1. オーバーロード (同じ関数名、異なるパラメーター タイプ。これには演算子のオーバーロードが含まれ、コンパイル時に行われます)

  2. パラメトリック ポリモーフィズム (これらは C++ のテンプレートのようなものです) コンパイル時間

  3. サブタイプ ポリモーフィズム(関数にサブタイプを持つパラメーターがある場合、たとえば Car->Honda、f(Car) の場合、関数 f は f(Honda) も受け入れます。)

  4. パラメーター強制 (これは暗黙の型変換です。たとえば、関数は double/real/float を必要とする場合がありますが、int を受け入れ、パラメーターを暗黙的にアップキャストします) コンパイル時間

参照:

于 2013-08-24T01:48:23.963 に答える