首页 > 代码库 > 参数和返回类型也可以多态

参数和返回类型也可以多态

 1 class Animala{ 2     void makeNoise(){ 3         System.out.println("动物在嘶吼"); 4     } 5 } 6 class Dogs extends Animala{ 7     void makeNoise(){ //重写 8         System.out.println("狗的叫声是汪汪汪"); 9     }10 }11 class Cat extends Animala{12     void makeNoise(){13         System.out.println("猫的叫声是喵呜呜呜呜");14     }15 }16 class Vet{17     public void giveShot(Animala a){18         a.makeNoise();19     }20 }21 public class Canshufanhui {22     void start(){23         Vet v = new Vet();24         Dogs d = new Dogs();25         Cat c = new Cat();26         v.giveShot(d); //giveshot接受的是animala类型的参数,Dogs继承自animala,利用了参数多态27         v.giveShot(c);28     }29     public static void main(String[] args){30         Canshufanhui p = new Canshufanhui();31         p.start();32     }33 34 }

技术分享

参数和返回类型也可以多态