ホームページ >Java >&#&チュートリアル >Java のポリモーフィズム: オーバーライドやオーバーロードとの違いは何ですか?

Java のポリモーフィズム: オーバーライドやオーバーロードとの違いは何ですか?

DDD
DDDオリジナル
2024-12-24 20:23:12717ブラウズ

Polymorphism in Java: How Does it Differ from Overriding and Overloading?

ポリモーフィズム: オーバーライドとオーバーロードの違いを明らかにする

Java のポリモーフィズムに関しては、オーバーライドとオーバーロードとの違いを明確にすることが重要です。過負荷。オーバーロードとは、同じクラス内に、名前は同じでパラメーター リストが異なる複数のメソッドが存在することを指します。一方、オーバーライドには、スーパークラスのメソッドと同じシグネチャ (名前とパラメーター) を持つメソッドをサブクラスで定義することが含まれます。

ポリモーフィズムを考慮する場合、最も正確な答えは次の概念にあります。抽象クラスまたはインターフェイス。抽象基本クラスは実装なしでメソッドを定義し、そのメソッドはそのサブクラスに実装されます。このアプローチはポリモーフィズムの例です。

説明するには、抽象メソッド goPee() を持つ抽象基本クラス Human を考えます。このメソッドは Human レベルでは定義できませんが、性別に対応するためにサブクラス Male と Female に実装する必要があります。特定の動作。

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");
    }
}

この例では、メソッド goPee() が特定の実装を提供するサブクラス。人間のグループにおしっこをするように指示できる場合、ポリモーフィズムが機能します。そして、彼らはそれぞれの実装に従ってアクションを実行します。

public static void main(String[] args) {
    ArrayList<Human> group = new ArrayList<>();
    group.add(new Male());
    group.add(new Female());

    // Tell Humans to go pee
    for (Human person : group) person.goPee();
}

出力:

Stand Up
Sit Down

これからデモンストレーションを行うと、ポリモーフィズムとは、継承階層内の異なるオブジェクトが同じメッセージに応答しながら異なる動作を示す能力であることが明らかになります。オーバーライドはこの動作を可能にするメカニズムですが、オーバーロードは同じクラス内のメソッド シグネチャに関連する別の概念です。

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

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