第十四章 多态

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. 多态的优点:
      多态可以减少类中代码量,可以提高代码的可扩展性和可维护性

posted @ 2017-07-19 16:01  预之外你L  阅读(138)  评论(0编辑  收藏  举报