1. 程式人生 > >初識多型的實現形態

初識多型的實現形態

今天學習了下多型,做個簡單的筆記

1,多型裡有繼承 2,子類中的多鐘形態過載 3,主程式中定義了父類,實現子類的功能 測試有幾種表現形態: 1,public static void function(Animal c){ c.sing;}//這樣定義顯示子類的實現 2,public static void function(Animal c){  Animal c1=new Animal(); c1.sing;}//此處只能顯示父類的實現 3,public static void function(Animal c){  Cat6 c1=(Cat6)c;  c1.catchMouse();//此處好像不能寫多個,如定義cat和dog,只能有一個 } 4,public static void function(Animal c){  Cat6 c1=(Cat6)c;  c1.catchMouse();//此處好像不能寫多個,如定義cat和dog,只能有一個 } 5,public static void function(Cat6 c){  Cat6 c1=(Cat6)c;  c1.catchMouse();//此處好像不能寫多個,如定義cat和dog,只能有一個 }

class Animal{  void sing(){   System.out.println("唱歌");  } } class Dog6 extends Animal{  void sing(){   System.out.println("汪汪的唱歌");  } } class Cat6 extends Animal{  void sing(){   System.out.println("喵喵的唱歌");  }  void catchMouse(){   System.out.println("捕鼠");  } } public class A651{  public static void main(String[] args){   Cat6 c1=new Cat6();    function(c1);    Dog6 c2=new Dog6();    function(c2);  }  public static void function(Animal c){//Animal c=new Cat();   /*Cat6 c1=(Cat6)c;   c1.catchMouse();   Dog6 c2=(Dog6)c;   c2.sing();*///測試好像只能定義cat或者dog,合起來定義程式混亂   /*Animal c1=new Animal();     c1.sing//若是定義了Animal,則顯示只會顯示Animal中的唱歌屬性,不會顯示子類 */  c.sing();  }