夏の間、独学をしていて、よくわからないこの問題に出くわしました。誰か助けてもらえないかと思っていました。最後の番号はわかりませんが、以前の回答も含めて確認していただければ幸いです。これはどのクラスの宿題でもありません。先に進む前に、自分が何をしているのかを理解したいだけです。
次の定義を検討しています。
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.
前もって感謝します!