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

 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 }

原文地址:https://www.cnblogs.com/saimeco/p/5874908.html