Sobes.tech
Junior

Co musí odlišovat dvě metody, aby je bylo možné považovat za přetížené?

sobes.tech AI

Odpověď od AI

Aby byly dvě metody považovány za přetížené, musí splňovat následující podmínky:

  • Stejný název metody. Název metod musí být stejný.
  • Odlišná signatura metody. Signatura metody zahrnuje název metody a seznam typů parametrů (jejich počet, pořadí a typy). Typ návratu metody není součástí signatury a neovlivňuje přetížení.

Příklady:

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

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

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

    // Toto není přetížení, protože signatura print(int) se opakuje
    // int print(int num) {
    //     return num;
    // }
}

Tabulka ilustrující příklady přetížení:

Název metody Typy parametrů Stejné / odlišné metody Je to přetížení? Důvod
calc (int, int) Odlišné Ano Odlišná signatura (počet a typy parametrů)
calc (double, double) Odlišné Ano Odlišná signatura (typy parametrů)
calc (int, int, int) Odlišné Ano Odlišná signatura (počet parametrů)
calc () Odlišné Ano Odlišná signatura (počet parametrů)
calc (int, int) Stejné Ne Stejná signatura
calculate (int, int) Odlišné Ne Jiný název metody