java中多態的使用實例(java中多態的使用實例怎麼寫)

本文目錄一覽:

關於Java多態的實例分析

1–:a1是類A的實例,所以只能調用A類中的show方法,參數b是類B的實例,B又是A的子類,所以只能調用類A中參數是A obj的那個方法,因為b只能轉換為父類型A,不能轉換為子類型D

2–:道理同上。

3–:道理同上。

由於前三條的變量類型和對象類型相同,不涉及多態,僅僅是重載的問題。

4–:此條代碼是難點,這裡涉及到了重寫和重載的概念,把重寫和重載徹底理解了,你就知道為什麼輸出是B and A了。重寫是子類中的方法和父類中的方法同名,同返回類型,同類型參數。

而重載是同一個類中的兩個方法(注意是同一個類中),名相同,但是參數類型不同或者數量不同。因為a2引用的是B類的實例,所以要去B類中找重寫的show方法,而不是重載的。所以只能調用參數類型是A的那個方法。

5–:道理同第4條。

6–:B類中繼承了A類的參數為D類型的show方法,只繼承而沒有重寫。也就是B類中實際有三個方法,所以此條代碼調用的是參數為D的方法。

7–:把上面的都理解了。7,8,9條代碼就很容易理解了。

7,8,9和1,2,3一樣不存在多態,僅僅是重載方法的調用。多態是父類變量引用子類對象才會發生的。變量類型和對象類型相同,只會涉及重載,和重寫無關。

你發的這段代碼,我在網上找到了一個博文,看了他的解釋,開始我覺得很難理解,後來才明白,他的解釋是混亂的。正確的原理是重寫和重載。只要你把重寫和重載的區別理解透徹,這段代碼就容易理解了。

JAVA中多態是怎麼一回事,能不能舉個例子,嗷嗷感謝!

java多態其實很簡單的….java多態必須滿足三個條件:1、繼承2、子類重寫父類方法3、父類引用調用子類對象接下來用例子一步一步解釋分別是什麼意思……繼承:公司員工 有測試員、開發員和項目經理 他們都有一些共同的屬性比如 年齡、性別、家庭地址、工資等。這時就可以將她們抽象出一個類出來 person 包括這些共同的屬性。然後測試員、開發員和項目經理去繼承這個類person後,就擁有了這些屬性了。子類重寫父類方法:測試員、開發員和項目經理的工資是不一樣的,他們又從繼承了工資這個屬性,顯然不能達到要求。此時就必須重寫從父類繼承過來的這個方法。父類引用調用子類對象:Person person = new Manager() 代碼:pulbic Person {

public void 工資() { System.out.println(3000);

}}

//=========================================

public Manager extends Person { //滿足條件1 繼承 public void 工資() { //滿足條件2 子類重寫父類方法 System.out.println(5000);

}

}//=========================================public Demo { public static void main(String[] args) {

Person person = new Manager(); //滿足條件3 父類引用調用子類對象

person.工資(); //打印 出5000;

}

}

JAVA中,為什麼要用多態,,怎麼用請給個通俗易懂的例子解釋下……

多態在兩方面有體現:

繼承多態

同一種抽象的東西在具體的類型中有不同的表現。比如大多數動物(抽象類)會叫,但是狗(實現類)就是汪汪汪,貓(實現類)就是喵喵喵

或者是具有包含關係需要修改表現,比如物品(父類)具有現實詳細信息的功能,但是書籍(子類)顯示詳細信息中可能還要包含書籍本身特有信息比如頁數、作者等等,這也是多態。

重載多態:同一個方法名在不同類型不同數量的參數傳入需要有不同的表現。

這個在構造方法上用的挺多,一般來說類都會有一個無參構造方法,還有不定的幾個有參構造方法,這是因為在編程期間需要調用不同的構造方法來產生不同的類。比如無參的就吧所有屬性置為默認值,有參的就用參數去初始化屬性等

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/198705.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-04 10:26
下一篇 2024-12-04 10:26

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論