首页 > 代码库 > Java之多态(二)

Java之多态(二)

package test05;
import test06.Car1;
public class DuoTai_Test02 {

/**多个对象,一个形态
* Tiger、Lion、Snake → Animal
*、多个对象,一种形态(类型)。
* 不同对象,表现出同一种形态之后。
* 可以实现同样的功能。
*
* 此方式,需要多个子类对应一个父类。
* 往往是采用(多个)子类继承父类来实现。
*
* @param args
*/
public static void main(String[] args) {
  Animal animal=new Cat(); ///抽象引用指向子类对象
  animal.eat();
  animal.sheep();
  Animal animal2=new Dog();
  animal2.eat();
  animal2.sheep();
  Animal animal3=new Snack();
  animal3.eat();
  animal3.sheep();

  DuoTai_Test02 dt=new DuoTai_Test02();

  dt.test(new Cat());
  dt.test(new Dog());
  dt.test(new Snack());
}
public void test(Animal animals){
  animals.eat();
  animals.sheep();
}

}

abstract class Animal{/////抽象类
  String name;
  int age;
  public abstract void eat();///抽象方法
  public abstract void sheep();////抽象方法

}
class Cat extends Animal {
  public void eat(){ ////重写
    System.out.println("猫吃");

  }
  public void sheep(){ ////重写
    System.out.println("猫睡觉");
  }
}
class Dog extends Animal{
  public void eat(){ ////重写

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

  }
  public void sheep(){ ////重写
  System.out.println("狗睡觉");

  }
}
class Snack extends Animal{
  public void eat(){ ////重写
  System.out.println("蛇吃");

  }
  public void sheep(){ ////重写
  System.out.println("蛇睡觉");

  }
}

 

Java之多态(二)