Java では、ポリモーフィズムはインターフェイスと抽象クラスを通じて実現されます。インターフェイスは、それを実装するクラスによって実装される必要があるメソッドを定義します。抽象クラスには、そのサブクラスによって実装される必要がある抽象メソッドが含まれます。ポリモーフィズムは、オブジェクトの配列を作成し、同じメソッドを呼び出すことによって実現され、要素の実際の型に応じて異なる実装を呼び出すことができます。たとえば、Shape インターフェイスを定義して Shape クラスの描画メソッドを定義し、さまざまな実装で複数の形状クラス (Circle、Square、Triangle など) を作成し、ポリモーフィズムを使用してキャンバス クラスを通じてすべての形状を描画できます。
Java におけるインターフェイスと抽象クラスのポリモーフィズムの適用
ポリモーフィズムはオブジェクト指向プログラミング (OOP) の鍵です 重要な概念これにより、オブジェクトが同じメソッド呼び出しに異なる方法で応答できるようになります。 Java では、インターフェイスと抽象クラスを通じてポリモーフィズムを実現できます。
インターフェース
インターフェースは、それを実装するクラスによって実装される必要があるメソッドのセットを定義します。インターフェイス自体には実装は含まれておらず、コントラクトを指定するだけです。
public interface Shape { double getArea(); }
抽象クラス
抽象クラスは、少なくとも 1 つの抽象メソッドを持つクラスです。抽象メソッドは実装されていないため、そのサブクラスによって実装する必要があります。抽象クラスには、具体的なメソッドとフィールドを含めることができます。
public abstract class Animal { protected String name; public abstract void makeSound(); }
ポリモーフィズム
インターフェイスと抽象クラスを使用すると、各要素が異なる型を持つオブジェクトの配列を作成できます。これらの要素に対して同じメソッドが呼び出される場合、実際の要素のタイプに応じて異なる実装が呼び出されます。
Shape[] shapes = { new Circle(), new Square(), new Triangle() }; for (Shape shape : shapes) { System.out.println("Area: " + shape.getArea()); }
実際的なケース
さまざまな形状を描画できる Canvas クラスを考えてみましょう。シェイプは、次のインターフェイスを使用して定義できます。
public interface Shape { void draw(); }
次に、さまざまな描画実装を持つ複数のシェイプ クラスを作成できます。
public class Circle implements Shape { @Override public void draw() { System.out.println("Drawing a circle"); } } public class Square implements Shape { @Override public void draw() { System.out.println("Drawing a square"); } } public class Triangle implements Shape { @Override public void draw() { System.out.println("Drawing a triangle"); } }
Canvas クラスは、ポリモーフィズムを使用して Shape オブジェクトの配列を受け入れることができます。 draw all Shape:
public class Canvas { public void drawAll(Shape[] shapes) { for (Shape shape : shapes) { shape.draw(); } } }
Java のポリモーフィズムにより、インターフェイスと抽象クラスを通じて、オブジェクトの実際の型に基づいてメソッドを動的に呼び出すことができるため、スケーラブルで再利用可能なコードが可能になります。
以上がJava におけるインターフェースと抽象クラスのポリモーフィズムの適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。