Oracle 1z0-808 Exam: Question #11 해설
질문 원본 내용
Given:
interface Readable {
public void readBook();
public void setBookMark();
}
abstract class Book implements Readable { // line n1
public void readBook() { } // line n2
}
class EBook extends Book { // line n3
public void readBook() { } // line n4
}
And given the code fragment:
Book book1 = new EBook();
book1.readBook();
Which option enables the code to compile?
A) Replace the code fragment at line n1 with:
class Book implements Readable {
B) At line n2 insert:
public abstract void setBookMark();
C) Replace the code fragment at line n3 with:
abstract class EBook extends Book {
D) At line n4 insert:
public void setBookMark() { }
질문 번역
다음은 Java 인터페이스와 추상 클래스에 관한 코드 예시입니다:
interface Readable {
public void readBook();
public void setBookMark();
}
abstract class Book implements Readable { // line n1
public void readBook() { } // line n2
}
class EBook extends Book { // line n3
public void readBook() { } // line n4
}
// 그리고 이 코드 조각이 주어졌습니다:
Book book1 = new EBook();
book1.readBook();
다음 중 어떤 옵션이 코드를 컴파일할 수 있게 합니까?
A) line n1에서 코드 조각을 다음과 같이 바꿉니다:
class Book implements Readable {
B) line n2에서 다음을 삽입합니다:
public abstract void setBookMark();
C) line n3에서 코드 조각을 다음과 같이 바꿉니다:
abstract class EBook extends Book {
D) line n4에서 다음을 삽입합니다:
public void setBookMark() { }
정답: B와 D
해설
Readable 인터페이스는 readBook과 setBookMark 두 메소드를 정의합니다. Book 클래스는 Readable 인터페이스를 구현하므로, Readable 인터페이스의 모든 메소드를 구현하거나 Book 클래스를 추상 클래스로 선언해야 합니다.
- 옵션 A는
Book클래스가 이미Readable인터페이스를 구현하고 있으므로, 코드를 바꾸는 것만으로는 충분하지 않습니다. - 옵션 B는
Book클래스에setBookMark메소드를abstract로 선언하는 것을 제안합니다. 추상 클래스는 추상 메소드를 포함할 수 있으므로, 이 변경은Book클래스가Readable인터페이스의 모든 메소드를 구현하지 않아도 되게 합니다. 따라서 이 옵션은 유효합니다. - 옵션 C는
EBook클래스를 추상 클래스로 바꾸는 것을 제안하지만,EBook클래스는 이미Book클래스의readBook메소드를 구현하고 있으며, 이 변경 자체가 코드를 컴파일 가능하게 만들지는 않습니다. - 옵션 D는
EBook클래스에setBookMark메소드의 구체적인 구현을 추가합니다.EBook클래스는Book클래스를 확장하고Book클래스가Readable인터페이스를 구현하므로,setBookMark메소드를 구현하는 것은Readable인터페이스의 계약을 만족시키는 유효한 방법입니다. 따라서 이 옵션도 유효합니다.
결과적으로, 코드를 컴파일 가능하게 하는 옵션은 B와 D입니다.
'Oracle 1z0-808 Exam' 카테고리의 다른 글
| Oracle 1z0-808 Exam 2024: Question #10 (0) | 2024.02.21 |
|---|---|
| Oracle 1z0-808 Exam 2024: Question #9 (0) | 2024.02.21 |
| Oracle 1z0-808 Exam 2024: Question #8 (0) | 2024.02.20 |
| Oracle 1z0-808 Exam 2024: Question #7 (0) | 2024.02.19 |
| Oracle 1z0-808 Exam 2024: Question #6 (0) | 2024.02.19 |
댓글