25

次のように定義されたインターフェイス A があるとします。

public interface A {
  public void a();
}

と呼ばれるメソッドが含まれています。void a();

このインターフェイスを実装し、メソッドが 1 つしかないクラスがあります。

    public class AImpl implements A {
       @Override
       public void a() {
           System.out.println("Do something");
       }
    }

Q: メイン クラスでインターフェイス メソッドを呼び出した場合、そのインターフェイスを実装するクラスに属する実装が呼び出されますか?

例えば:

public static void main(String[] args){
  A aa;
  aa.a();
}

これは「何かをする」と印刷されますか?

4

5 に答える 5

2

AImpl実際のオブジェクトでルーチンを呼び出す必要があります

A aa = new AImpl();
aa.a();

ここでは次と同等です

AImpl aa = new AImpl();
aa.a();

初期化されていないオブジェクトでメソッドを呼び出そうとしているため、サンプルはエラーを発生させます。

于 2013-04-23T16:14:02.983 に答える