Java におけるオーバーロードとオーバーライドとは何ですか

Susan Sarandon
リリース: 2024-09-27 10:37:30
オリジナル
778 人が閲覧しました

What are overloading and overriding in Java

1. Java におけるメソッドのオーバーロードとは何ですか?

メソッドのオーバーロードは、同じクラス内の複数のメソッドが同じ名前を共有しているが、異なるパラメーター (型、数値、またはその両方) を持つ場合に発生します。メソッドのオーバーロードの背後にある主なアイデアは、プログラムの可読性を向上させることです。

1.1 メソッドのオーバーロードの特徴

  • 同じメソッド名 : オーバーロードされたすべてのメソッドは同じ名前を持つ必要があります。
  • 異なるパラメータ リスト : メソッドはパラメータの数またはタイプが異なる必要があります。
  • コンパイル時ポリモーフィズム : メソッドのオーバーロードは、Java のコンパイル時 (または静的) ポリモーフィズムの一例です。

1.2 メソッドのオーバーロードの例

メソッドのオーバーロードを説明する簡単な例を見てみましょう:

public class Calculator {

    // Method to add two integers
    public int add(int a, int b) {
        return a + b;
    }

    // Method to add three integers
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // Method to add two doubles
    public double add(double a, double b) {
        return a + b;
    }
}
ログイン後にコピー

1.3 例の説明

上記の例では、Calculator クラスには add という名前の 3 つのオーバーロードされたメソッドがあります。各メソッドには異なるパラメータ リストがあります:

  • 最初のメソッドは 2 つの int パラメーターを受け取ります。
  • 2 番目のメソッドは 3 つの int パラメーターを受け取ります。
  • 3 番目のメソッドは 2 つの double パラメーターを受け取ります。

add メソッドが呼び出されると、渡された引数に基づいて適切なバージョンが選択されます。これにより、コードがより直観的になり、理解しやすくなります。

1.4 デモと結果

public class TestCalculator {
    public static void main(String[] args) {
        Calculator calc = new Calculator();

        System.out.println("Addition of two integers: " + calc.add(10, 20)); // Outputs 30
        System.out.println("Addition of three integers: " + calc.add(10, 20, 30)); // Outputs 60
        System.out.println("Addition of two doubles: " + calc.add(10.5, 20.5)); // Outputs 31.0
    }
}
ログイン後にコピー

2. Java におけるメソッドのオーバーライドとは何ですか?

メソッドのオーバーライドは、スーパークラスですでに定義されているメソッドの特定の実装をサブクラスが提供するときに発生します。メソッドのオーバーライドの目的は、サブクラスが、そのスーパークラスの 1 つによってすでに定義されているメソッドの特定の実装を提供できるようにすることです。

2.1 メソッドオーバーライドの特徴

  • 同じメソッド シグネチャ : サブクラスのメソッドは、スーパークラスのメソッドと同じ名前、戻り値の型、パラメーターを持つ必要があります。
  • 実行時ポリモーフィズム : メソッドのオーバーライドは、Java のランタイム (または動的) ポリモーフィズムの一例です。
  • @override アノテーション : @override アノテーションを使用して、メソッドがスーパークラス メソッドをオーバーライドしていることを示すことをお勧めします。

2.2 メソッドのオーバーライドの例

メソッドをオーバーライドする実際の例を見てみましょう:

class Animal {
    // Method in the superclass
    void sound() {
        System.out.println("The animal makes a sound");
    }
}

class Dog extends Animal {
    // Overriding the sound() method in the subclass
    @Override
    void sound() {
        System.out.println("The dog barks");
    }
}
ログイン後にコピー

2.3 例の説明

上記の例:

  • Animal クラスには、一般的なメッセージを出力する sound という名前のメソッドがあります。
  • Dog クラスは Animal を拡張し、sound メソッドをオーバーライドして特定のメッセージを提供します。

Dog のインスタンスでサウンド メソッドが呼び出されると、Dog でオーバーライドされたメソッドが実行されます。

2.4 デモと結果

public class TestAnimal {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Upcasting
        myDog.sound(); // Outputs: The dog barks
    }
}
ログイン後にコピー

3. オーバーロードとオーバーライド: 主な違い

3.1 定義

  • オーバーロード : 同じ名前でパラメーターが異なる同じクラス内の複数のメソッドが関係します。
  • オーバーライド : スーパークラスで既に定義されているサブクラスでのメソッドの再定義が含まれます。

3.2 多態性タイプ

  • オーバーロード : コンパイル時のポリモーフィズムを表します。
  • オーバーライド : 実行時のポリモーフィズムを表します。

3.3 バインディング

  • オーバーロード : メソッド バインディングはコンパイル時に発生します。
  • オーバーライド : メソッド バインディングは実行時に発生します。

3.4 使用例

  • オーバーロード : メソッドが異なるタイプまたは数のパラメーターを使用して同様の機能を実行する場合に使用されます。
  • オーバーライド : サブクラスが、スーパークラスで既に定義されているメソッドの特定の実装を提供する必要がある場合に使用されます。

4. 結論

メソッドのオーバーロードとメソッドのオーバーライドの違いを理解することは、効果的な Java コードを作成するために重要です。オーバーロードにより、名前は同じでパラメーターが異なる複数のメソッドが許可されるため、コードの読みやすさと使いやすさが向上します。一方、オーバーライドすると、スーパークラスですでに定義されているメソッドの特定の実装をサブクラスが提供できるようになり、実行時のポリモーフィズムが容易になります。

ご質問がある場合、またはさらに説明が必要な場合は、お気軽に以下にコメントしてください。私は助けに来ました!

詳細については、 で投稿をご覧ください: Java のオーバーロードとオーバーライドとは何ですか

以上がJava におけるオーバーロードとオーバーライドとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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