【Java SE17 Silver 模擬試験】A-55

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

正しいインタフェースの定義はどれですか。

A) public interface MyType {
              int CODE;
	      abstract void print(String msg);
     }
B) public interface MyType {
             public void print(String msg) {
	             System.out.println(msg);
	     };
     }
C) public interface MyType {
             final int CODE = 1;
             protected abstract void print(String msg);
     }
D) public interface MyType {
             private void print(String msg);
     }
E) public interface MyType {
             static int CODE = 1;
             default void print(String msg);
     }
F) public interface MyType {
             public static final int CODE = 1;
             void print(String msg);
     }

解答

A) public interface MyType {
int CODE;
abstract void print(String msg);
}
B) public interface MyType {
             public void print(String msg) {
	             System.out.println(msg);
	     };
     }
C) public interface MyType {
             final int CODE = 1;
             protected abstract void print(String msg);
     }
D) public interface MyType {
             private void print(String msg);
     }
E) public interface MyType {
             static int CODE = 1;
             default void print(String msg);
     }
F) public interface MyType {
             public static final int CODE = 1;
             void print(String msg);
     }

解説

A) public interface MyType {
int CODE;
abstract void print(String msg);
}

int CODE; は、初期化す必要があります。

B) public interface MyType {
             public void print(String msg) {
	             System.out.println(msg);
	     };
     }

インターフェースのメソッドは、抽象メソッドでなければいけません
具象メソッドとする場合は、defaultを付与す必要があります。

C) public interface MyType {
             final int CODE = 1;
             protected abstract void print(String msg);
     }

インターフェースに定義するprint()メソッドのアクセス修飾子は、publicである必要があります。
設問ではprotectedを指定しているため、コンパイルエラーです。

D) public interface MyType {
             private void print(String msg);
     }

インターフェースに定義するprint()メソッドのアクセス修飾子は、publicである必要があります。
設問ではprivateを指定しているため、コンパイルエラーです。

E) public interface MyType {
static int CODE = 1;
default void print(String msg);
}

defaultを付与した場合、処理コードを記述する必要があります。

前の問題へ SE17_A-54

次の問題へ SE17_A-56


対象資格:Java SE17 認定資格