Sobes.tech
Junior

Mis peab kahe meetodi eristama, et saaksime neid ülekoormatuks pidada?

sobes.tech AI

Vastus AI-lt

Et kaks meetodit peetakse ülekoormatuks, kui nad vastavad järgmistele tingimustele:

  • Sama meetodi nimi. Meetodite nimed peavad olema identsed.
  • Erinev meetodi signatuur. Meetodi signatuur hõlmab meetodi nime ja parameetritüüpide nimekirja (nende arvu, järjekorra ja tüübi). Meetodi tagastustüüp ei kuulu signatuuri ja ei mõjuta ülekoormatust.

Näited:

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

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

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

    // See ei ole ülekoormus, kuna signatuur print(int) kordub
    // int print(int num) {
    //     return num;
    // }
}

Tabel, mis illustreerib ülekoormuse näiteid:

Meetodi nimi Parameetritüübid Sama / erinevad meetodid Kas see on ülekoormus? Põhjus
calc (int, int) Erinevad Jah Erinev signatuur (arv ja tüübid)
calc (double, double) Erinevad Jah Erinev signatuur (parameetritüübid)
calc (int, int, int) Erinevad Jah Erinev signatuur (arv)
calc () Erinevad Jah Erinev signatuur (arv)
calc (int, int) Sama Ei Sama signatuur
calculate (int, int) Erinevad Ei Erinev meetodi nimi