Этого вопрос может быть похож на Java overload confusionМетод перегрузка: Единственный параметр против параметров переменного
Я читал книгу, и есть тема о перегрузке методы, из которого компилятор не может быть в состоянии решить Вызываемый метод. В примере в книге используется перегруженный метод с двумя параметрами (int, double)
и (double, int)
. Вызов этого метода, например overloadedTwoParam (4, 5), вызовет ошибку компилятора, поскольку int может быть передано в double. Мой вопрос здесь в том, почему компилятор может решить, какой метод будет вызываться, если мой параметр только один?
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.overloadedSingleParam(1); //this is working
t.overloadedTwoParam(4, 5); //this is NOT working
}
void overloadedSingleParam(double a) {
// do something here..
}
void overloadedSingleParam(int a) {
// do something here..
}
void overloadedTwoParam(double a, int b) {
// do something here..
}
void overloadedTwoParam(int a, double b) {
// do something here..
}
}
У вас нет ответа на ваш вопрос в ответе? – CKing
у вас есть метод, который принимает один параметр 'int'. –
@jackjay да, но int может быть передан в двойной параметр, почему java все еще может его решить? – fuzzy28