Sobes.tech
Junior

Čo musí odlišovať dve metódy, aby sme ich mohli považovať za preťažené?

sobes.tech AI

Odpoveď od AI

Da bi sa dve metódy považovali za prepísané, musia splniť nasledujúce podmienky:

  • Rovnaké meno metódy. Názov metódy musí byť identický.
  • Rozličná signatúra metódy. Signatúra metódy zahŕňa názov metódy a zoznam typov parametrov (ich počet, poradie a typy). Typ návratu metódy nie je súčasťou signatúry a neovplyvňuje prepísanie.

Príklady:

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

    // Toto nie je prepísanie, pretože signatúra print(int) sa opakuje
    // int print(int num) {
    //     return num;
    // }
}

Tabuľka ilustrujúca príklady prepísania:

Názov metódy Typy parametrov Rovnaké / rozličné metódy Je to prepísanie? Dôvod
calc (int, int) Rozličné Áno Rozličná signatúra (počet a typy parametrov)
calc (double, double) Rozličné Áno Rozličná signatúra (typy parametrov)
calc (int, int, int) Rozličné Áno Rozličná signatúra (počet parametrov)
calc () Rozličné Áno Rozličná signatúra (počet parametrov)
calc (int, int) Rovnaké Nie Rovnaká signatúra
calculate (int, int) Rozličné Nie Iné meno metódy