Hi,
beim Kompilieren kommt ne Fehlermeldung wenn ich später nen Aufruf wie
mache. Sie lautet: "Reference to v is ambiguous, both method...match"
Kern der Aussage, soweit ich das verstehe. Es "passen" beide Methoden. Die Signaturen sind doch aber unterschiedlich. Warum geht das überladen so nicht? Im ersten fall ist meine Signatur: v(int,int,int). Im zweiten: v(double,double,char). Insbesondere der letzte Parameter, das char, ist ja wohl deutlich vom int zu unterscheiden. Bei dem anderen geh ich mal von aus das die Parameter von int in double konvertiert werden könnten.
Wo liegt also der Fehler?
beim Kompilieren kommt ne Fehlermeldung wenn ich später nen Aufruf wie
Java:
double result = v(3,4,'z');
mache. Sie lautet: "Reference to v is ambiguous, both method...match"
Kern der Aussage, soweit ich das verstehe. Es "passen" beide Methoden. Die Signaturen sind doch aber unterschiedlich. Warum geht das überladen so nicht? Im ersten fall ist meine Signatur: v(int,int,int). Im zweiten: v(double,double,char). Insbesondere der letzte Parameter, das char, ist ja wohl deutlich vom int zu unterscheiden. Bei dem anderen geh ich mal von aus das die Parameter von int in double konvertiert werden könnten.
Wo liegt also der Fehler?
Java:
public static int v(int r, int h, int k) {
return r+h+k;
}
public static double v(double r, double h, char typ) {
return r+h+k;
}