第十四章 多態

1. 多態:同一個引用類型,使用不一樣的實例而執行不一樣的操做。
       子類的對象,父類的引用;測試

2. 多態的實現方式:
  1)使用父類做爲方法形參實現多態;
    子類重寫父類方法
    用父類接收子類對象
    關鍵代碼:
    父類:public abstract void eat();
    子類:public void eat(){
        System.out.println("狗狗吃狗糧....");
        super.setHealth(super.getHealth()+3);
       }
    主人類:public void feed(Pet pet){
        pet.eat();
      }
    測試類Text:Dog d=new Dog("大黃",100,"95","大黃狗");
        master.feed(d);
  2)使用父類做爲方法的返回值:
  關鍵代碼:
    主人類:
    public Pet getPet(int typeid){
      Pet pet;
      if(typeid==1){
        pet=new Dog();
      }else if(typeid==2){
        pet=new Qie();
      }else{
        pet=new Mou();
      }
      return pet;
    }
    測試類:Pet p=master.getPet(result);
      master.feed(p);對象

3. 若是某方法是子類特有的,那在掉用方法時,須要對父類引用進行強轉;
  Dog d=(Dog)pet;
    instanceof的語法:對象 instanceof 類型或接口
   經驗:強轉和instanceof一塊兒使用
   關鍵代碼:public void play(Pet pet){
        if(pet instanceof Dog){
          Dog dog=(Dog)pet;
          dog.catchingFlyDisc();
        }else{
          Qie qie=(Qie)pet;
          qie.swimming();
        }
      }接口

4. 多態的優勢:
      多態能夠減小類中代碼量,能夠提升代碼的可擴展性和可維護性 get

相關文章
相關標籤/搜索