第二次過程性考核——面向物件程式設計
阿新 • • 發佈:2018-12-14
程式改錯題。以下程式碼存在錯誤,請修改後提交。
1 public class Main { 2 public static void main(String[] args) { 3 Animal animal = new Dog(); 4 animal.shout(); 5 animal.run(); 6 } 7 } 8 9 class Animal { 10 void shout() { 11 System.out.println("animal shout!"); 12 }13 } 14 15 class Dog extends Animal { 16 void shout() { 17 super.shout(); 18 System.out.println("wangwang……"); 19 } 20 21 void run() { 22 System.out.println("Dog is running"); 23 } 24 }
輸入樣例:
無
輸出樣例:
animal shout!
wangwang……
Dog is running
程式設計思路:Animal是Dog的上轉型物件,即不能操作子類新增的成員變數,也不能呼叫子類新增的方法;所以需要將物件的上轉型物件再強制轉換到一個子類物件,這時,該子類物件又具備了子類所有的屬性和功能。
涉及知識點:自類的繼承,物件的上轉型物件
程式碼:
1 public class Main { 2 public static void main(String[] args) { 3 Animal animal = new Dog(); 4 animal.shout(); 5 ((Dog) animal).run(); 6 } 7 } 8 9 class Animal { 10 void shout() { 11 System.out.println("animal shout!");12 } 13 } 14 15 class Dog extends Animal { 16 void shout() { 17 super.shout(); 18 System.out.println("wangwang……"); 19 } 20 21 void run() { 22 System.out.println("Dog is running"); 23 } 24 }
執行結果:
學習內容 | 程式碼(行) | 部落格(字) |
類與物件、子類與繼承 | 300 | 1200 |