zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Die Signatur einer Methode ist der Name der Methode und die Typen in ihrer Parameterliste, ungefähr etwas wie dieses:

irgendeineMethode( int, double, String )

Der Rückgabetyp ist kein Bestandteil der Signatur. Die Namen der Parameter spielen keine Rolle, nur die Typen und ihre Reihenfolge.

Signatur

Der Name einer Methode reicht nicht aus, um sie eindeutig zu identifizieren, da es mehrere Versionen von dieser Methode geben kann, jede mit verschiedenen Parametern. Durch die Verwendung der Typen in der Parameterliste kann die gewünschte Methode präzisiert werden. Der Rückgabetyp kann wegen der folgenden Situation nicht verwendet werden. Angenommen es gibt zwei irgendeineMethode() Methoden: eine ist in der Superklasse wie diese:

int irgendeineMethode( int x, double y, String z )
{
  //Methodenkörper
}

und die andere Methode ist in einer Subklasse wie dieser definiert:

short irgendeineMethode( int a, double b, String c )
{
  // vollkommen anderer Methodenkörper
}

Irgendwo in dem Programm wird irgendeineMethode() aufgerufen:

long w = subklasseObjekt.irgendeineMethode( 12, 34.9, "Welche Methode?" );

Der Wert rechts vom Gleichheitszeichen könnte sowohl ein int als auch ein short sein. Beide können in einen long-Wert konvertiert werden, der für die Variable w gebraucht wird. Sie können nicht sagen welche der zwei irgendeineMethode() mit der Anweisung übereinstimmt. Mit anderen Worten, die Signaturen der zwei Methoden sind nicht eindeutig.

FRAGE 2:

Haben die folgenden zwei Methoden verschiedene Signaturen?

double aMethode( int x, String y){. . .}

short  aMethode( int a, double b){. . .}