Я занимаюсь самообучением летом, и я столкнулся с этой проблемой, о которой я не знаю, и мне было интересно, сможет ли кто-нибудь помочь. Я не уверен в последнем номере, но я включил свои предыдущие ответы, если кто-то захочет их проверить. Это не домашнее задание для любого класса, я просто хочу убедиться, что я понимаю, что я делаю, прежде чем двигаться дальше.Юридические вызовы и определение перегруженных функций в Java
Я рассматриваю следующие определения:
1. void m (Object o, long x, long y)
2. void m (String s, int x, long y)
3. void m (Object o, int x, long y)
4. void m (String s, long x, int y)
которые эти заявления:
Object o;
String v;
int a;
long b;
и я Проверив эти вызовы:
m(v,a,b); Calls 2, because it is the most specific.
m(v,a,a); Not legal, because 2 and 4 could both be called (not specific enough).
m(v,b,a); Calls 4, because it is the most specific.
m(v,b,b); Calls 1, because it is the only one that will fit (long cannot shorten to int).
m(o,b,b); Calls 1, similar reasoning as above answer.
m(o,a,a); Unsure. I'm not sure of the precedence.
Заранее спасибо!
Вы попробовали сами? Если вопрос * почему * перегрузки выбраны, это одно; но если вопрос заключается в том, чтобы получить выбор, это очень легко проверить. – yshavit
Это вопрос обоих, но вы правы, я даже не подумал протестировать его. Было бы очень легко понять. Благодаря! –