java多态

一、为什么需要多态。

public class test {
 public static void main(String [] args){
  Master m = new Master();
  Animal an = new Cat();
  Food f = new Fish();
  m.feed(an, f);
 }
}
class Master{
 private String name;
 public void feed(Animal an,Food f){
  an.eat();
  f.showName();
 }
}
class Animal{
  String name;
  int age;
  public void eat(){
   System.out.println("我要吃什么");
  } 
}
class Dog extends Animal{
 public void eat(){
  System.out.print("狗爱吃");
 } 
}
class Cat extends Animal{
 public void eat(){
  System.out.print("猫爱吃");
 } 
}
class Food{
  String name;
 public void showName(){
  System.out.println("我是什么食物");
 }
}
class Fish extends Food{
 public void showName(){
 System.out.println("鱼");
}
}

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

通过以上的方法,Master就没有必要去定义别的方法比如(喂养猫的,喂养狗的。。。。。。),只要一个方法就够养所有的动物了

2.注意事项

2.1 java允许父类的引用对象引用他的子类实例(自动完成的)

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