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 |
댓글