国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java的多態性

2019-11-06 08:35:56
字體:
來源:轉載
供稿:網友

                                                                                                    java的多態性

public class DuoTaiTest {/** 多態:就是指某一個事物,在不同時刻表現出來的不同狀態* 貓 m = new 貓();* 狗 d = new 狗();* Animal a = new Animal();* Animal a1 = new 貓();* Animal a2 = new 狗();* * 多態的前提和體現:* 1.有繼承關系(讓類與類產生關系)* 2.有方法重寫(如果沒有,就不能體現出貓和狗不同的動作特點)* 3.有父類引用指向子類的對象* 父類 對象名 = new 子類();* 多態的分類:* 1.具體類多態* class 父類{ ... }* class 子類 extends 父類{...}* 父類 對象名 = new 子類();* 2.抽象類多態(還算常用)* abstract class 父類{...}* class 子類 extends 父類{...}* 父類 對象名 = new 子類();* 3.接口多態(非常常用)* interface 父類{...}* class 子類 implements 父類{...}* * 父類 對象名 = new 子類();* * 多態中成員訪問特點:* 1.成員變量:* 只能訪問父類的成員變量(既然裝,就要裝到底)* 2.構造方法:* 子類的構造方法都會默認訪問父類構造方法* 目的:對父類的數據進行初始化* 3.成員方法:* 調用子類的成員方法(前提是成員方法要有重寫)* 4.靜態方法:* 靜態方法不算重寫,訪問的還是父類方法。* 多態的有點:* 1.提高類代碼的復用性(繼承來保證)* 2.提高了代碼的擴展性(多態來保證)* 多態的缺點:* 父類不能訪問子類特有的功能(子類所有的成員變量,獨有方法)* 怎么解決: 子類可以當父類用,父類不能當子類用?* 轉型:* 1.向上轉型 :從子到父* 2.向下轉型 :從父到子* 用多態* 1.向上轉型:把父親的屬性打印出來* 把三個兒子的相同方法的獨特的變現方式打印出來* 把爸爸的獨有方法打印出來* 2.向下轉型:把三個兒子獨有的屬性打印出來* 把三個兒子獨有的方法打印出來*/public static void main(String[] args) {// Cat c = new Cat();// c.eat();// c.sleep();// Horse h = new Horse();// h.eat();// h.sleep();Animal a1 = new Cat();//轉型:向上轉型// a1.eat();// a1.sleep();// Animal.show(a1);a1.show2();Cat cc = (Cat)a1;//轉型:向下轉型cc.call();System.out.PRintln(cc.a);System.out.println("---------------------");a1 = new Dog();// a2.eat();// a2.sleep();// Animal.show(a1);a1.show2();System.out.println("---------------------");a1 = new Horse();// a3.eat();// a3.sleep();// Animal.show(a1);a1.show2();// System.out.println("cat----"+a1.a);// System.out.println("dog----"+a2.a);// a1.eat();// a2.eat();// a1.call();// a1.drink();// a2.drink();}}class Animal{int a = 100;private String name;private int age;// public Animal(){// System.out.println("父類無參");// }public Animal(int a){System.out.println("父類有參");}public void eat(){System.out.println("動物吃東西");}public void sleep(){System.out.println("動物睡覺");}public static void show(Animal a){a.eat();a.sleep();}public void show2(){eat();sleep();}public static void drink(){System.out.println("時代在變遷,猩猩會抽煙");}}class Cat extends Animal{int a = 10;private boolean sex;public Cat(){super(5);System.out.println("Cat類無參");}public Cat(int a){super(5);System.out.println("Cat類有參");}public void eat(){System.out.println("貓吃魚");}public void sleep(){System.out.println("貓是側著睡覺");}public void call(){System.out.println("喵~喵~喵~");}public static void drink(){System.out.println("111時代在變遷,猩猩會抽煙");}}class Dog extends Animal{int a = 15;private boolean sex;public Dog(){super(5);System.out.println("Dog類無參");}public Dog(int a){super(5);System.out.println("Dog類有參");}public void eat(){System.out.println("狗吃肉");}public void sleep(){System.out.println("狗是趴著睡覺");}public void call(){System.out.println("汪!汪!汪!");}public static void drink(){System.out.println("222時代在變遷,猩猩會抽煙");}}class Horse extends Animal{int a = 15;private boolean sex;public Horse(){super(5);System.out.println("Horse類無參");}public Horse(int a){super(5);System.out.println("Horse類有參");}public void eat(){System.out.println("馬吃草");}public void sleep(){System.out.println("馬是站著睡覺");}public void call(){System.out.println("吁!吁!吁!");}public static void drink(){System.out.println("222時代在變遷,猩猩會抽煙");}}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁海县| 临安市| 博白县| 玛纳斯县| 富宁县| 秦安县| 富顺县| 开化县| 南和县| 克山县| 虞城县| 福州市| 娄底市| 武夷山市| 中山市| 肥东县| 拜城县| 胶南市| 海淀区| 义马市| 伊宁市| 岳西县| 大渡口区| 内黄县| 曲水县| 多伦县| 秭归县| 招远市| 元氏县| 安阳县| 溧水县| 鸡东县| 浮山县| 通道| 新津县| 安康市| 泉州市| 安仁县| 柳河县| 花垣县| 鄢陵县|