「Java」「繼承與覆寫」 Chapter4 Question13

Given:
interface Paintable{
 public abstract void paint();
}
abstract class Canvas implements Paintable{
 public void paint() {
 }
}
abstract class WhiteBoard extends Canvas{
}
class Paper extends Canvas{
 protected void paint (char color) {
 }
}
class Frame extends Canvas implements Paintable{
 public void changeSize() {
 }
}

Answer:
所有通過編譯。

解析:
Interface Paintable : 可以有abstract 方法與物件方法
class Canvas implements Paintable:可以有abstract類別。但內容不可有abstract方法
abstract class WhiteBoard extends Canvas: abstract類別可無內容。
class Paper extends Canvas: 子類別的方法可覆寫父類別
class Frame extends Canvas implements Paintable: 編譯沒問題,即使沒任何覆寫方法

留言

這個網誌中的熱門文章

[Excel]國曆轉農曆VBA

「CSS」「div區塊介紹」 三欄式網頁排版設計

「生活」眉毛觀人