首頁 > Java > java教程 > 主體

Java基礎-多型

巴扎黑
發布: 2017-06-26 11:30:00
原創
1490 人瀏覽過

 多態性是指允許不同類型的物件對相同訊息做出對應。具有靈活性、抽象、行為共享、程式碼共享的優勢,共享就意味著最大化利用和簡潔,還有就是載入速度。

一、多態的作用

#消除型別之間的耦合關係。即同一事件發生在不同的物件上會產生不同的結果。

二、多態的實作形式

1.重載(發生在同一個類別)

2.覆寫(發生在子類別中)

三、多態的好處

1.可替換性

2.可擴展性

#3 .接口性(多態是超累透過方法簽名,向子類別提供了一個共同的介面)

4.簡潔性

#5.靈活性

#注意:這些好處說起來比較虛,只有你真正應用的時候才能體會得到。

四、多型存在的三個前提

1.要有繼承關係

2.子類別要重寫父類別的方法

3.父類別引用指向子類別物件

 

程式碼範例說明:定義一個父類別Animal,一個子類別Dog

 1 //父类——Animal 2 public class Animal { 3     int num = 44; 4     static int age = 2; 5  6     public void eat() { 7         System.out.println("动物都需要吃东西"); 8     } 9 10     public static void sleep() {11         System.out.println("动物需要睡觉");12     }13 14     public void run() {15         System.out.println("长腿的动物爱奔跑");16     }17 }
登入後複製
 1 //子类——Dog 2 public class Dog extends Animal { 3     int num = 5; 4     static int age = 5; 5     String name = "Tom"; 6  7     public void eat() { 8         System.out.println("我爱吃狗粮"); 9     }10 11     public static void sleep() {12         System.out.println("我是一只不爱睡觉的活泼狗狗");13     }14 15     public void catchMouse() {16         System.out.println("我喜欢多管闲事");17     }18 19 }
登入後複製
 1 //测试类 2 public class Demo_Test { 3     public static void main(String[] args) { 4         Animal a = new Dog(); 5         a.eat(); 6         a.sleep(); 7         a.run(); 8          9         System.out.println(a.num);10         System.out.println(a.age);11     }12 }
登入後複製

#注意事項示範:

從上面的列印結果(7),我們可以得出:

1)成員變數:列印父類,子類別沒有出來;

2)成員方法:父類別為靜態的就列印父類,非靜態的直接列印子類別;

3)在左側5、6中有報錯,是因為我們在呼叫靜態成員時使用的方法不對。 (下面會截圖示範正確的)

4)當呼叫父類別裡沒有的方法時(a.catchMouse();),會報錯。 )

此時,多態不能使用自己特有的屬性和方法,這是多態的弊端,那又該如何解決呢?

答案:把這個父類別引用指向子類別物件a,再強制變回Dog型別。這樣a就是Dog類型的引用了,指向的也是Dog物件了。

 

以上是Java基礎-多型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板