Given:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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 } |
Which options enable the code to compile?
A.
Replace the code fragment at line n1 with:
8 | class Book implements Readable { |
B.
At line n2 insert:
12 | public abstract void setBookMark(); |
C.
Replace the code fragment at line n3 with:
15 | abstract class EBook extends Book{ |
D.
At line n4 insert:
20 | public void setBookMark() { } |
題解
在尚未修改任何程式的時候,EBook類別會因為沒有實作出Readable介面的setBookMark方法而發生編譯錯誤。
選項A,將抽象類別Book改成非抽象類別。如此一來Book類別一定要實作出Readable介面的所有方法,會造成編譯錯誤。
選項B,在Book抽象類別內新增setBookMark抽象方法,在EBook類別內依然沒有將這個抽象方法實作出來,所以還是一樣會發生編譯錯誤。
選項C,將EBook類別改成抽象類別,如此一來EBook類別內不需實作出Readable介面的所有方法也沒關係。
選項D,在EBook內實作出setBookMark方法,使得Readable介面的所有方法都被實作完成。
留言