您好,登錄后才能下訂單哦!
轉載于 : http://www.verejava.com/?id=16992804621647
/** 知識點: 抽象類 abstract 題目: 爸爸叫我買一斤水果和一條魚 思路: 1. 抽象出類:爸爸(Father), 兒子(Son), 水果(Fruit),魚(Fish) 2. 找出類關系: 兒子繼承爸爸 水果買回來屬于->Father->Son 3. 找出方法: 買(buy) 是爸爸叫兒子買水果,爸爸知識發出了要求聲明并沒用實現 而真正去實現這個是兒子 *//** 注意: 1. 加了關鍵字 abstract 的抽象方法不能有方法體實現,只能有方法的聲明 2. 當一個類中存在以 abstract 聲明的抽象方法時, 該類必須加上abstract 關鍵 字表明該類是抽象類 3. 子類如果繼承一個抽象類, 子類必須實現父類所有的抽象方法 4. 抽象類中也可以聲明實現方法,也就是抽象類中可以定義抽象方法,也可以定義 帶方法體的實現方法,而子類不需要復寫抽象父類的具體已經實現的方法 5. 抽象類不能直接實例化,必須有其實現的子類間接來實例化 */public class TestAbstract { public static void main(String[] args) { //實例化父親 //Father f=new Father(); //實例化兒子 Son s = new Son("李明"); //地攤上有各種水果和魚 Fruit apple = new Fruit("蘋果"); Fruit grape = new Fruit("葡萄"); Fish caoyu = new Fish("草魚"); Fish lianyu = new Fish("鰱魚"); //買水果和魚 s.buy(apple); s.buy(lianyu); //回家以后高興的告訴爸爸 System.out.println("爸爸,爸爸 我買了一斤:" + s.getFruit().getName() + " 和一條 : " + s.getFish().getName()); } }abstract class Father { protected Fruit fruit; protected Fish fish; public Fruit getFruit() { return this.fruit; } public Fish getFish() { return this.fish; } //要求聲明要買水果 public abstract void buy(Fruit fruit); //要求聲明要買條魚 public abstract void buy(Fish fish); }class Son extends Father { private String name; public Son(String name) { super(); this.name = name; } //兒子實現父親買水果的要求 public void buy(Fruit fruit) { this.fruit = fruit; } //兒子實現父親買條魚的要求 public void buy(Fish fish) { this.fish = fish; } public String getName() { return this.name; } }class Fruit { private String name; public Fruit(String name) { this.name = name; } public String getName() { return this.name; } }class Fish { private String name; public Fish(String name) { this.name = name; } public String getName() { return this.name; } }
轉載于 : http://www.verejava.com/?id=16992804621647
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。