ホームページ  >  記事  >  Java  >  Java ポリモーフィズムはどのように実装されますか?

Java ポリモーフィズムはどのように実装されますか?

(*-*)浩
(*-*)浩オリジナル
2019-12-03 14:12:484104ブラウズ

オブジェクト指向プログラミング (OOP) では、間違いなくポリモーフィック機構が最大の特徴であり、ポリモーフィズムを利用しないプログラミングは OOP とは呼べないとさえ言えます。

Java ポリモーフィズムはどのように実装されますか?

基本的に、ポリモーフィズムには 2 つのタイプがあります。

コンパイル時ポリモーフィズム (静的ポリモーフィズムとも呼ばれます) , 実行時ポリモーフィズム (動的ポリモーフィズムとも呼ばれます) (推奨学習: java コース )

オーバーロード (オーバーロード) はコンパイル時ポリモーフィズムの一例であり、コンパイル時ポリモーフィズムはコンパイル中に発生します。これは実行時に決定され、決定されたメソッドが実行時に呼び出されます。

通常ポリモーフィズムと呼ばれるものは、実行時ポリモーフィズムを指します。つまり、コンパイル時にどの特定のメソッドを呼び出すかが不明であり、実行時まで遅延されます。これが、多態性メソッドが遅延メソッドと呼ばれることがある理由です。

以下は、実行時ポリモーフィズム (以下、ポリモーフィズムと呼びます) のメカニズムを簡単に紹介します。

ポリモーフィズムには通常 2 つの実装メソッドがあります。

サブクラスは親クラスを継承 (拡張)

クラスはインターフェイスを実装 (実装)

どのメソッドを使用する場合でも、中心となるのは、実行時にさまざまな実行効果を実現するための親クラス メソッドの書き換えまたはインターフェイス メソッドの実装です。

ポリモーフィズムを使用するには、オブジェクトを宣言するときに 1 つのルールに従う必要があります。それは、常に親クラス型またはインターフェイス型を宣言し、実際の型を作成することです。たとえば、ArrayList オブジェクトを作成すると仮定すると、宣言では次のステートメントを使用する必要があります。

List list=newArrayList();

ではなく

ArrayList list=newArrayList();

メソッド パラメーターを定義するときは、常に親クラスを最初に使用する必要があります。たとえば、型またはインターフェイス型のメソッドは、

publicvoid doSomething(List list);

ではなく

publicvoid doSomething(ArrayList list);

のように記述する必要があります。このような宣言の最大の利点は、構造の柔軟性です。 ArrayList の特性が私のニーズを満たすことができないため、LinkedList を使用して置き換えたいと考えています。その場合、 new ArrayList() をオブジェクトが作成される新しい LinkedList に変更するだけで済み、他のコードを変更する必要はありません。

以上がJava ポリモーフィズムはどのように実装されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。