問題
正しいインタフェースの定義はどれですか。
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を付与した場合、処理コードを記述する必要があります。
対象資格:Java SE17 認定資格