Java でのポリモーフィズム、オーバーライド、およびオーバーロード
ポリモーフィズムの定義
Java でポリモーフィズムについて議論する場合Java は、オーバーロードもオーバーライドも、その本質を完全にはカプセル化していません。ポリモーフィズムは、抽象基本クラスまたはインターフェイスを通じて最もよく理解されます。
抽象基本クラスとポリモーフィズム
抽象メソッド goPee() を持つ抽象基本クラス Human を考えてみましょう。 Male やFemale.
public abstract class Human { ... public abstract void goPee(); }
サブクラスでのオーバーライド
Male や Female などのサブクラスは、次の特定の特性に基づいて goPee() メソッドを実装します。
public class Male extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Stand Up"); } }
public class Female extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Sit Down"); } }
多態性動作
この設定では、Human オブジェクトの配列に男性と女性の両方のインスタンスを含めることができます。すべての人間に対して goPee() を呼び出すと、各サブクラスに固有のオーバーライドされたメソッドが実行され、ポリモーフィックな動作が示されます。
public static void main(String[] args) { ArrayList<Human> group = new ArrayList<>(); group.add(new Male()); group.add(new Female()); // Polymorphism: Execute overridden goPee() in each subclass for (Human person : group) person.goPee(); }
結論
ポリモーフィズムは次の能力を通じて現れます。異なるクラスのオブジェクトを使用して、同じメソッド呼び出しに対して異なる応答を返すことができます。この柔軟性を実現するために、継承とメソッドのオーバーライドを活用します。
以上がJava では継承とメソッドのオーバーライドを通じてポリモーフィズムがどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。