初識多型的實現形態
今天學習了下多型,做個簡單的筆記
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(); }