3

誰かが以下を説明できれば素晴らしいでしょう。print(String s)以下の例でメソッドが呼び出され、呼び出されない理由print(Object o)

package com.example;

public class DemoTest {

    public void print(Object o){
        System.out.println("Object");
    }
    public void print(String s){
        System.out.println("String");
    }
    public static void main(String[] args) {
        DemoTest dt = new DemoTest();
        dt.print(null);

    }
}
4

1 に答える 1

1

メソッドのオーバーロードでの Java の奇妙な null 動作から取得

「これは、String クラスが Object から拡張されているため、Object により固有であるためです。そのため、コンパイラはそのメソッドを呼び出すことを決定します。コンパイラは常に、呼び出す最も具体的なメソッドを選択することを忘れないでください。」

于 2013-08-30T15:34:13.630 に答える