Sobes.tech
Junior

Kuo turi skirtis du metodai, kad galėtume juos laikyti perkrautais?

sobes.tech AI

Atsakymas iš AI

Kad du metodai būtų laikomi perkraunamais, jie turi atitikti šias sąlygas:

  • Tas pats metodo pavadinimas. Metodo pavadinimas turi būti identiškas.
  • Skirtinga metodo signatūra. Metodo signatūra apima metodo pavadinimą ir parametrų tipų sąrašą (jų kiekį, tvarką ir tipus). Metodo grąžinimo tipas ne yra signatūros dalis ir neturi įtakos perkrovimui.

Pavyzdžiai:

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

    // Tai nėra perkrovimas, nes signatūra print(int) kartojasi
    // int print(int num) {
    //     return num;
    // }
}

Lentelė, iliustruojanti perkrovimo pavyzdžius:

Metodas pavadinimas Parametrų tipai Tie patys / skirtingi metodai Ar tai perkrovimas? Priežastis
calc (int, int) Skirtingi Taip Skirtinga signatūra (kiekis ir tipai)
calc (double, double) Skirtingi Taip Skirtinga signatūra (tipai)
calc (int, int, int) Skirtingi Taip Skirtinga signatūra (kiekis)
calc () Skirtingi Taip Skirtinga signatūra (kiekis)
calc (int, int) Tie patys Ne Tie patys signatūra
calculate (int, int) Skirtingi Ne Kito metodo pavadinimas