轉(zhuǎn)載于 : http://www.verejava.com/?id=16992804621647
創(chuàng)新互聯(lián)專注于天心企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。天心網(wǎng)站建設(shè)公司,為天心等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
/** 知識(shí)點(diǎn): 抽象類 abstract 題目: 爸爸叫我買一斤水果和一條魚 思路: 1. 抽象出類:爸爸(Father), 兒子(Son), 水果(Fruit),魚(Fish) 2. 找出類關(guān)系: 兒子繼承爸爸 水果買回來屬于->Father->Son 3. 找出方法: 買(buy) 是爸爸叫兒子買水果,爸爸知識(shí)發(fā)出了要求聲明并沒用實(shí)現(xiàn) 而真正去實(shí)現(xiàn)這個(gè)是兒子 *//** 注意: 1. 加了關(guān)鍵字 abstract 的抽象方法不能有方法體實(shí)現(xiàn),只能有方法的聲明 2. 當(dāng)一個(gè)類中存在以 abstract 聲明的抽象方法時(shí), 該類必須加上abstract 關(guān)鍵 字表明該類是抽象類 3. 子類如果繼承一個(gè)抽象類, 子類必須實(shí)現(xiàn)父類所有的抽象方法 4. 抽象類中也可以聲明實(shí)現(xiàn)方法,也就是抽象類中可以定義抽象方法,也可以定義 帶方法體的實(shí)現(xiàn)方法,而子類不需要復(fù)寫抽象父類的具體已經(jīng)實(shí)現(xiàn)的方法 5. 抽象類不能直接實(shí)例化,必須有其實(shí)現(xiàn)的子類間接來實(shí)例化 */public class TestAbstract { public static void main(String[] args) { //實(shí)例化父親 //Father f=new Father(); //實(shí)例化兒子 Son s = new Son("李明"); //地?cái)偵嫌懈鞣N水果和魚 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; } //兒子實(shí)現(xiàn)父親買水果的要求 public void buy(Fruit fruit) { this.fruit = fruit; } //兒子實(shí)現(xiàn)父親買條魚的要求 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; } }
轉(zhuǎn)載于 : http://www.verejava.com/?id=16992804621647