08/03/16 21:46:48
Javaでオーバーロードを行なった場合の「あいまい」と言われる、言われない条件というのを詳しく知りたいのですが
何か良い資料はないでしょうか?
例えば
class Hoge{}
class Hoge2 extends Hoge{}
class Hoge3 extends Hoge2{}
と定義して
test(new Hoge3(), new Hoge3());
と呼び出したとき、
void test(Hoge2 a, Hoge3 b){}
void test(Hoge a, Hoge3 b){}
問題なし
void test(Hoge2 a, Hoge3 b){}
void test(Hoge2 a, Hoge2 b){}
問題無し
void test(Hoge a, Hoge3 b){}
void test(Hoge2 a, Hoge2 b){}
あいまいエラー
となる基準がいまいちピンときません。