ホームページ >Java >&#&チュートリアル >Java ポリモーフィズムはどのように実装されますか?
オブジェクト指向プログラミング (OOP) では、間違いなくポリモーフィック機構が最大の特徴であり、ポリモーフィズムを利用しないプログラミングは OOP とは呼べないとさえ言えます。
基本的に、ポリモーフィズムには 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 サイトの他の関連記事を参照してください。