1 //接口与具体的实现类之间也存在多态性 2 public class TestInterface { 3 4 public static void main(String[] args) { 5 Duck d = new Duck(); 6 TestInterface.test1(d); 7 TestInterface.test2(d); 8 TestInterface.test3(d); 9 } 10 11 public static void test1(Runner r){//Runner r = new Duck(); 12 r.run();//虚拟方法调用 13 } 14 public static void test2(Swimmer s){//Swimmer s = new Duck(); 15 s.swim(); 16 } 17 public static void test3(Flier f){//Flier f = new Duck(); 18 f.fly(); 19 } 20 } 21 22 interface Runner{ 23 public abstract void run(); 24 } 25 interface Swimmer{ 26 void swim(); 27 } 28 interface Flier{ 29 void fly(); 30 } 31 32 class Duck implements Runner,Swimmer,Flier{ 33 34 @Override 35 public void fly() { 36 System.out.println("丑小鸭也可以变成白天鹅!"); 37 } 38 39 @Override 40 public void swim() { 41 System.out.println("红掌拨清波"); 42 } 43 44 @Override 45 public void run() { 46 System.out.println("鸭子屁股扭扭的走路"); 47 } 48 49 }