以下のようなソースで、引数の型に対してどのメソッドが呼ばれるか?の定義がよくわかりません。
- 引数がnullの時にどういう基準で呼ばれるメソッドが決まるの?
- 継承の階層?がより近い方のメソッドが呼ばれる、という認識であっているのか
あたりが特に気になっていますが、この辺りの定義がまとまったドキュメントがあれば教えていただきたいです。
よろしくお願いします。
java
1public class OverloadTest { 2 3 public static void method(Sexy sexy){ 4 System.out.println("メソッドA"); 5 } 6 7 public static void method(SuperSexy superSexy){ 8 System.out.println("メソッドB"); 9 } 10 11 public static void method(SexyInterface superSexy){ 12 System.out.println("メソッドC"); 13 } 14 15 public static void main(String[] args){ 16 Sexy sexy = new Sexy(); 17 method(sexy); //メソッドAがよばれる 18 19 SuperSexy superSexy = new SuperSexy(); 20 method(superSexy); //メソッドBがよばれる 21 22 SexyInterface intarfaceSexy = new Sexy(); 23 method(intarfaceSexy); //メソッドCが呼ばれる 24 25 26 } 27} 28 29class Sexy extends SuperSexy implements SexyInterface{ 30} 31 32class SuperSexy implements SexyInterface { 33} 34 35interface SexyInterface{ 36}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/25 23:29