Sobes.tech
Junior

Kas jāatšķir divām metodēm, lai tās varētu uzskatīt par pārslogotām?

sobes.tech AI

Atbilde no AI

Lai divas metodes uzskatītu par pārlādētu, tās ir jāatbilst šādiem nosacījumiem:

  • Tāds pats metodes nosaukums. Metodes nosaukumam jābūt identiskam.
  • Atšķirīga metodes signatūra. Metodes signatūra ietver metodes nosaukumu un parametru tipu sarakstu (to skaitu, kārtību un tipus). Metodes atgriešanas tips nav signatūras daļa un neietekmē pārlādi.

Piemēri:

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

    void print(String text) { // Signatūra: print(String)
        System.out.println(text);
    }

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

    // Tas nav pārlāde, jo signatūra print(int) atkārtojas
    // int print(int num) {
    //     return num;
    // }
}

Tabula, kas ilustrē pārlādes piemērus:

Metodes nosaukums Parametru tipi Vienādi / dažādi metodes Vai tas ir pārlādēšana? Iemesls
calc (int, int) Dažādi Atšķirīga signatūra (parametru skaits un tipi)
calc (double, double) Dažādi Atšķirīga signatūra (parametru tipi)
calc (int, int, int) Dažādi Atšķirīga signatūra (parametru skaits)
calc () Dažādi Atšķirīga signatūra (parametru skaits)
calc (int, int) Vienādi Vienāda signatūra
calculate (int, int) Dažādi Atšķirīgs metodes nosaukums