Java多态demo

 public static void main(String[] args){
 //java允许父类的引用变量引用子类的实例
 Animal an=new Cat();
 an.cry();//输出“喵”
 Animal an=new Dog();
 an.cry();//输出“汪”,此为多态
 
 Master master=new Master();
 //此时分别打印出“猫吃鱼,鱼”,“狗吃骨头,骨头”
 //给动物喂食物,使用多态,方法feed就可以只使用一次
 master.feed(new Cat(),new Fish());
 master.feed(new Dog(),new Bone());
 }

 
 class Master{
 public void feed(Animal an,Food f){
 an.eat();
 f.showName();
 }
 }



//Animal类
 class Animal{
 String name;
 int age;

 public void cry(){
 System.out.println("动物会叫")
 }
 public void eat(){
 System.out.println("动物会吃")
 }
 }

//Cat和Dog类
 class Cat extends Animal{
 public void cry(){
 System.out.println("喵")
 }
 public void eat(){
 System.out.println("猫吃鱼")
 }
 }

 class Dog extends Animal{
 public void cry(){
 System.out.println("汪")
 }
 public void eat(){
 System.out.println("狗吃骨头")
 }
 }



//Food类
 class Food{
 String name;

 public void showName(){
 System.out.println("食物")
 }
 }

 //Fish和Bown类
 class Fish extends Food(){
 public void showName(){
 System.out.println("鱼肉")
 }
 }

 class Bone extends Food(){
 public void showName(){
 System.out.println("骨头")
 }
 }


你可能感兴趣的:(Java多态demo)