Sobes.tech
Junior

Wat moet twee methoden onderscheiden zodat we ze als overload kunnen beschouwen?

sobes.tech AI

Antwoord van AI

Om twee methoden als overload te worden beschouwd, moeten ze aan de volgende voorwaarden voldoen:

  • Dezelfde methodenaam. De naam van de methoden moet identiek zijn.
  • Verschillende methodesignatures. De signature van de methode omvat de naam van de methode en de lijst van parameter types (aantal, volgorde en types). Het returntype van de methode maakt geen deel uit van de signature en beïnvloedt de overload niet.

Voorbeelden:

class Example {
    void print(int num) { // Signature: print(int)
        System.out.println(num);
    }

    void print(String text) { // Signature: print(String)
        System.out.println(text);
    }

    void print(int num, String text) { // Signature: print(int, String)
        System.out.println(num + " " + text);
    }

    // Dit is geen overload, omdat de signature print(int) wordt herhaald
    // int print(int num) {
    //     return num;
    // }
}

Tabel die voorbeelden van overload illustreert:

Methodenaam Parametertypes Zelfde / Verschillende methoden Is het overload? Reden
calc (int, int) Verschillende Ja Verschillende signature (aantal en types parameters)
calc (double, double) Verschillende Ja Verschillende signature (parametertypes)
calc (int, int, int) Verschillende Ja Verschillende signature (aantal parameters)
calc () Verschillende Ja Verschillende signature (aantal parameters)
calc (int, int) Zelfde Nee Zelfde signature
calculate (int, int) Verschillende Nee Andere methodenaam