ホームページ >Java >&#&チュートリアル >オーバーロードとオーバーライド: Java においてポリモーフィズムは両方にどのように関係するのでしょうか?

オーバーロードとオーバーライド: Java においてポリモーフィズムは両方にどのように関係するのでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-21 00:38:09677ブラウズ

Overloading vs. Overriding: How Does Polymorphism Relate to Both in Java?

Java のポリモーフィズム、オーバーライド、およびオーバーロードを理解する

Java のポリモーフィズムについて議論する場合、オーバーロードとオーバーライドを区別することが重要です。オーバーロードには、名前は同じだがパラメーターが異なる複数のメソッドを定義することが含まれますが、オーバーライドは、サブクラスがスーパークラスのメソッドを実装するときに発生します。

多態性をオーバーロードまたはオーバーライドとして分類するという問題に関しては、どちらも完全に正しいわけではありません。ポリモーフィズムには、両方の概念が組み込まれています。

抽象基本クラスとオーバーライド

ポリモーフィズムは、メソッドを実装せずに宣言する抽象基本クラスを通じて最もよく例示されます。次に、サブクラスは、その継承に固有のこれらのメソッドを定義します。サブクラスは継承されたメソッドに独自の実装を提供するため、このプロセスはオーバーライドとみなされます。

たとえば、抽象メソッド goPee()Human を考えてみましょう。 🎜>、トイレに行く一般的な人間を表します。サブクラス 男性女性 は、特定の実装でこのメソッドをオーバーライドします。

public abstract class Human {
    public abstract void goPee();
}

public class Male extends Human {
    @Override
    public void goPee() {
        System.out.println("Stand Up");
    }
}

public class Female extends Human {
    @Override
    public void goPee() {
        System.out.println("Sit Down");
    }
}

人間 のインスタンスを含む ArrayList を作成することで、次のことができます。 goPee() メソッドを多態的に呼び出し、以下に基づいて異なる出力を生成します。特定のサブクラス:

ArrayList<Human> group = new ArrayList<>();
group.add(new Male());
group.add(new Female());

for (Human person : group) person.goPee();
これは、特定の実装にもかかわらず、異なるオブジェクト間で共通のメソッドを使用できるようにするポリモーフィズムの多用途性を示しています。

以上がオーバーロードとオーバーライド: Java においてポリモーフィズムは両方にどのように関係するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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