Java Language Metodi di sovraccarico


Esempio

A volte è necessario scrivere la stessa funzionalità per diversi tipi di input. A quel tempo, si può usare lo stesso nome di metodo con un diverso set di parametri. Ogni diverso insieme di parametri è noto come firma del metodo. Come visto nell'esempio, un singolo metodo può avere più firme.

public class Displayer {

    public void displayName(String firstName) {
        System.out.println("Name is: " + firstName);
    }

    public void displayName(String firstName, String lastName) {
        System.out.println("Name is: " + firstName + " " + lastName);
    }

    public static void main(String[] args) {
        Displayer displayer = new Displayer();
        displayer.displayName("Ram");          //prints "Name is: Ram"
        displayer.displayName("Jon", "Skeet"); //prints "Name is: Jon Skeet"
    }
}

Il vantaggio è che la stessa funzionalità viene chiamata con due diversi numeri di input. Durante il richiamo del metodo in base all'input che stiamo passando, (in questo caso un valore di stringa o due valori di stringa) viene eseguito il metodo corrispondente.

I metodi possono essere sovraccaricati:

  1. In base al numero di parametri passati.

    Esempio: method(String s) e method(String s1, String s2) .

  1. Basato sull'ordine dei parametri .

    Esempio: method(int i, float f) e method(float f, int i)) .

Nota: i metodi non possono essere sovraccaricati modificando solo il tipo restituito (il int method() è considerato uguale al String method() e genera una RuntimeException se tentata). Se si modifica il tipo di reso, è necessario modificare anche i parametri per sovraccaricare.