1. 程式人生 > >Java學習的第十一天---多型

Java學習的第十一天---多型

abstract class Animal{

   abstract void eat();

}

class Cat extends Animal{

   public void eat(){

     System.out.println("吃魚");

   }

   public void catchMouse(){

     System.out.println("抓老鼠");

   }

}

class Dog extends Animal{

   public void eat(){

     System.out.println("吃骨頭");

   }

   public void kanJia(){

     System.out.println("看家");

   }

}

class Pig extends Animal{

   public void eat(){

     System.out.println("飼料");

   }

   public void gongDi(){

     System.out.println("拱地");

   }

}

//-----------------------------------------

class DuoTaiDemo {

   public static void main(String[] args) {

     //Cat c = new Cat();

     //c.eat();

     //Dog d = new Dog();

     //d.eat();

     //Cat c = new Cat();

     /*

     Cat c1 = new Cat();

     function(c1);

     function(new Dog());

     function(new Pig());

     */

     //Animal c = new Cat();

     //c.eat();

     function(new Cat());

     function(new Dog());

     function(new Pig());

   }

   //改良後的程式碼,多型使用

   public static void function(Animal a)//Animal a = new Cat();

   //提高了擴充套件性,但是隻能使用父類的引用訪問父類中的成員;

   {

     a.eat();

     //a.catchMouse();---

   }

   /*

   最開始的方法,麻煩

   public static void function(Cat c)//{

     c.eat();

   }

   public static void function(Dog d){

     d.eat();

   }

   public static void function(Pig p){

     p.eat();

   }

   */

}