02.26 Java基礎之多態,動態綁定多態的代碼案例,簡單卻很重要

#關注疫情,武漢加油#

感謝大家的轉發、收藏。需要源碼的留言聯繫小編免費領取即可!持續更新中...

一、 多態

多態基於繼承(),現實事物中經常可以看到人,而學生、工人、白領、宇航員等都是人,即由人演變而來的多種狀態。多態是Java三大特性(<strong>封裝、繼承、多態)之一,它的出現豐富了完善了Java面向對象體系。由以下的代碼演示多態的特性:

Java基礎之多態,動態綁定多態的代碼案例,簡單卻很重要

Java多態之派生類Fish實例圖

Java基礎之多態,動態綁定多態的代碼案例,簡單卻很重要

Java多態之基類Animal實例圖

Java基礎之多態,動態綁定多態的代碼案例,簡單卻很重要

Java多態之派生類Tiger實例圖

Java基礎之多態,動態綁定多態的代碼案例,簡單卻很重要

Java多態演示運行效果圖

由上面的多態演示代碼,就不得不說一下<strong>動態綁定,動態綁定是指在執行時判斷鎖作用對象的實際類型。多態的實現基於動態綁定,是指用基類的引用指向派生類的實例,當調用方法時再確定是應該調用基類的方法還是調用派生類的方法。附帶部分源碼如下:

<code>package com.part1;/** * 多態演示 * 派生類Fish * @author 紅魚程序員生活 * */public class Fish extends Animal {private String name = "魚";public Fish(int weight, String name) {super(weight);this.name = name;}public void move(){System.out.println("fish can swim");}public static void main(String[] args){Animal animal = new Animal(99);Fish fish = new Fish(22, "大魚魚");Tiger tiger = new Tiger(77, "大老虎");Animal[] arr = new Animal[3];arr[0] = animal;arr[1] = fish;arr[2] = tiger;for(Animal a : arr) {System.out.println("animal weight is " + a.weight);a.move();System.out.println("-------------------");}}}/<code>

上面代碼中由基類(Animal)、派生類(Fish、Tiger)組成,派生類重寫了move()方法。主方法(main)中分別創建了基類和派生類的實例,然後將它們加入同一個數組,最後觀察輸出結果可知,在循環(for)中都是用基類(Animal)類型的引用指代數組中的實例,但是在調用move()方法時卻有不同的表現,這就是多態。多態就是用基類指代派生類,在實際調用時調用派生類的實現。


Java基礎之多態,動態綁定多態的代碼案例,簡單卻很重要


上述案例演示的不夠全面,小編也是一邊學習一邊編寫文章。大家一起學習,歡迎留言。在後面的圖文中會逐漸完善。


分享到:


相關文章: