Java自學-接口與繼承 重寫

Java 重寫方法
子類可以繼承父類的對象方法
在繼承後,重複提供該方法,就叫做方法的重寫
又叫覆蓋 Override
步驟 1 : 父類Item
父類Item有一個方法,叫做effect
package property; public class Item {    String name;    int price;     public void buy(){        System.out.println("購買");    }    public void effect() {        System.out.println("物品使用後,可以有效果");    } }
步驟 2 : 子類LifePotion
子類LifePotion繼承Item,同時也提供了方法effect
package property; public class LifePotion extends Item{         public void effect(){        System.out.println("血瓶使用後,可以回血");    }     }
步驟 3 : 調用重寫的方法
調用重寫的方法
調用就會執行重寫的方法,而不是從父類的方法
所以LifePotion的effect會打印:
"血瓶使用後,可以回血"
package property; public class Item {    String name;    int price;         public void effect(){        System.out.println("物品使用後,可以有效果");    }         public static void main(String[] args) {        Item i = new Item();        i.effect();                 LifePotion lp =new LifePotion();        lp.effect();    }     }
步驟 4 : 如果沒有重寫這樣的機制怎麼樣?
如果沒有重寫這樣的機制,也就是說LifePotion這個類,一旦繼承了Item,所有方法都不能修改了。
但是LifePotion又希望提供一點不同的功能,爲了達到這個目的,只能放棄繼承Item,重新編寫所有的屬性和方法,然後在編寫effect的時候,做一點小改動.
這樣就增加了開發時間和維護成本
package property; public class Item {    String name;    int price;     public void buy(){        System.out.println("購買");    }    public void effect() {        System.out.println("物品使用後,可以有效果");    } }package property; public class LifePotion {    String name;    int price;     public void buy(){        System.out.println("購買");    }    public void effect(){        System.out.println("血瓶使用後,可以回血");    }}
練習: 重寫
(設計一個類MagicPotion 藍瓶,繼承Item, 重寫effect方法
並輸出 “藍瓶使用後,可以回魔法”)
答案
package property; public class MagicPotion extends Item{     public void effect(){        System.out.println("藍瓶使用後,可以回魔法");    }}

更多免費技術資料可關注:annalin1203

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章