ホームページ > Java > &#&チュートリアル > Java では継承とメソッドのオーバーライドを通じてポリモーフィズムがどのように機能しますか?

Java では継承とメソッドのオーバーライドを通じてポリモーフィズムがどのように機能しますか?

Barbara Streisand
リリース: 2024-12-18 21:23:11
オリジナル
876 人が閲覧しました

How Does Polymorphism Work in Java Through Inheritance and Method Overriding?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート