国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java面向?qū)ο蟆慷鄳B(tài)的詳細(xì)介紹,簡單易懂,看這一篇就夠了

這篇具有很好參考價值的文章主要介紹了【Java面向?qū)ο蟆慷鄳B(tài)的詳細(xì)介紹,簡單易懂,看這一篇就夠了。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


什么是多態(tài)

A: 方法或?qū)ο缶哂卸喾N形態(tài),是面向?qū)ο蟮牡谌筇卣?,多態(tài)是建立在封裝和繼承的基礎(chǔ)之上的。簡單來說,多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征。


多態(tài)的優(yōu)點

  • 消除類型之間的耦合關(guān)系
  • 可替代性
  • 可擴(kuò)充性
  • 接口性
  • 靈活性
  • 簡化性

多態(tài)的分類

重載式多態(tài)

重載式多態(tài)在編譯時已經(jīng)確定好了。方法名相同而參數(shù)列表不同的一組方法就是重載。在調(diào)用這種重載的方法時,通過傳入不同的參數(shù)最后得到不同的結(jié)果。

案例

public void add(int a, int b) {
    int c = a + b;
    System.out.println("兩個整數(shù)相加得 " + c);
}
public void add(float a, float b) {
    float c = a + b;
    System.out.println("兩個float型浮點數(shù)相加得" + c);
}

重寫式多態(tài)

重寫式多態(tài)是指在執(zhí)行期間判斷所引用對象的實際類型,根據(jù)其實際的類型調(diào)用其相應(yīng)的方法。也就是說,只有程序運行起來,你才知道調(diào)用的是哪個子類的方法。 這種多態(tài)通過函數(shù)的重寫以及向上轉(zhuǎn)型來實現(xiàn),我們接下來講的所有多態(tài)都是重寫式多態(tài),因為它才是面向?qū)ο缶幊讨姓嬲亩鄳B(tài)。

多態(tài)的向上轉(zhuǎn)型

Q:什么是多態(tài)的向上轉(zhuǎn)型?
A:父類的引用指向子類的對象叫做向上轉(zhuǎn)型。

Q:向上轉(zhuǎn)型的怎么寫?
A:父類類型 引用名 = new 子類類型();

Q:向上轉(zhuǎn)型有什么特點?
A:編譯類型看左邊,運行類型看右邊??梢哉{(diào)用父類中的所有成員。最終運行效果看子類的具體實現(xiàn)。

案例

 //動物類,擁有一個call()方法
class Animal {
    public void call() {
        System.out.println("動物叫!");
    }
}
 // 狗類,實現(xiàn)父類動物,并重寫call()方法
class Dog extends Animal {
    public void call() {
        System.out.println("汪汪!");
    }

    public void color() {
        System.out.println("狗狗顏色!");
    }
}
 // 貓類,實現(xiàn)父類動物,并重寫call()方法
class Cat extends Animal {
    public void call() {
        System.out.println("喵~");
    }

    public void color() {
        System.out.println("貓貓顏色!");
    }
}
 //測試類
public class Test {
    public static void main(String[] args) {
 	    //向上轉(zhuǎn)型
        Animal animal = new Dog();
        animal.call();
        animal = new Cat();
        animal.call();
    }
}

這里 Animal animal = new Dog();將子類對象Dog轉(zhuǎn)化為父類對象Animal,這個時候Animal引用指向的是子類對象,所以調(diào)用的方法是子類方法。
向上轉(zhuǎn)型時,子類單獨定義的方法會丟失。比如,上面案例中的Dog類和Cat類都定義了自己的call方法,當(dāng)進(jìn)行了向上轉(zhuǎn)型后,Animal引用指向Dog類的實例時是訪問不到color方法的,Animal.color()會報錯。

多態(tài)的向下轉(zhuǎn)型

Q:什么是多態(tài)的向下轉(zhuǎn)型?
A:子類引用指向父類對象(父類型,實例是子類的實例化)叫做多態(tài)的向下轉(zhuǎn)型。通常需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

案例

 //動物類,擁有一個call()方法
class Animal {
    public void call() {
        System.out.println("動物叫!");
    }
}
 // 狗類,實現(xiàn)父類動物,并重寫call()方法
class Dog extends Animal {
    public void call() {
        System.out.println("汪汪!");
    }

    public void color() {
        System.out.println("狗狗顏色!");
    }
}
 // 貓類,實現(xiàn)父類動物,并重寫call()方法
class Cat extends Animal {
    public void call() {
        System.out.println("喵~");
    }

    public void color() {
        System.out.println("貓貓顏色!");
    }
}
 //測試類
public class Test {
    public static void main(String[] args) {
    	//向上轉(zhuǎn)型
    	Animal animal = new Dog();
 	    //向下轉(zhuǎn)型
        Dog dog = (Dog)animal;//向下轉(zhuǎn)型,強(qiáng)制類型轉(zhuǎn)換
        dog.color();//輸出狗狗顏色!
        Cat cat = (Cat)animal;//報錯
        Animal animal = new Animal();
        Dog dog = (Dog)animal;//報錯
    }
}

這里需要注意Dog dog = (Dog)Animal;可以正常運行,是因為dog本身就是Dog對象,可以正常轉(zhuǎn)型為Dog,而不能轉(zhuǎn)型為Cat。aniaml類是Animal對象,他也不能向下轉(zhuǎn)型成任何子類對象。

總結(jié)一下:

1)向下轉(zhuǎn)型的前提是父類引用指向的是子類對象,也就是說,向下轉(zhuǎn)型之前,它得先進(jìn)行過向上轉(zhuǎn)型。
2)向下轉(zhuǎn)型只能轉(zhuǎn)型為本類對象。文章來源地址http://www.zghlxwxcb.cn/news/detail-808651.html

到了這里,關(guān)于【Java面向?qū)ο蟆慷鄳B(tài)的詳細(xì)介紹,簡單易懂,看這一篇就夠了的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 從零開始學(xué)習(xí) Java:簡單易懂的入門指南之多態(tài)(十)

    從零開始學(xué)習(xí) Java:簡單易懂的入門指南之多態(tài)(十)

    多態(tài)是繼封裝、繼承之后,面向?qū)ο蟮牡谌筇匦浴?多態(tài)是出現(xiàn)在繼承或者實現(xiàn)關(guān)系中的 。 多態(tài)體現(xiàn)的格式 : 多態(tài)的前提 :有繼承關(guān)系,子類對象是可以賦值給父類類型的變量。例如Animal是一個動物類型,而Cat是一個貓類型。Cat繼承了Animal,Cat對象也是Animal類型,自然可

    2024年02月12日
    瀏覽(98)
  • Educoder/頭歌JAVA——JAVA面向?qū)ο螅悍庋b、繼承和多態(tài)的綜合練習(xí)

    Educoder/頭歌JAVA——JAVA面向?qū)ο螅悍庋b、繼承和多態(tài)的綜合練習(xí)

    目錄 第1關(guān):封裝、繼承和多態(tài)進(jìn)階(一) 相關(guān)知識 面向?qū)ο笏枷?封裝 繼承 組合和繼承 構(gòu)造函數(shù) super()和this() 編程要求 第2關(guān):封裝、繼承和多態(tài)進(jìn)階(二) 相關(guān)知識 重寫和重載 abstract(抽象類)和interface(接口) final static static的作用 多態(tài) 編程要求 第

    2024年02月04日
    瀏覽(65)
  • 【Java不看后悔系列】|面向?qū)ο缶幊蘾[繼承、封裝、多態(tài)全覆蓋]

    【Java不看后悔系列】|面向?qū)ο缶幊蘾[繼承、封裝、多態(tài)全覆蓋]

    ??個人主頁:? Aileen_0v0 ??系列專欄: Java學(xué)習(xí)系列專欄 ??個人格言:\\\"沒有羅馬,那就自己創(chuàng)造羅馬~\\\" (inheritance) 1.A?child class inherits everything from its parent class. 2.A?child class cannot inherit the constructors from its parent class . 子類 繼承 的內(nèi)容: 字段(成員變量): 子類會繼承父類的字段

    2024年02月05日
    瀏覽(22)
  • 【Java SE語法篇】8.面向?qū)ο笕筇卣鳌庋b、繼承和多態(tài)

    【Java SE語法篇】8.面向?qū)ο笕筇卣鳌庋b、繼承和多態(tài)

    ??博客主頁:愛敲代碼的小楊. ?專欄:《Java SE語法》 ??感謝大家點贊????收藏?評論???,您的三連就是我持續(xù)更新的動力?? 面向?qū)ο笕筇匦裕悍庋b、繼承和多態(tài)。 在面向?qū)ο蟪淌皆O(shè)計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現(xiàn)細(xì)節(jié)部

    2024年02月01日
    瀏覽(34)
  • Java面向?qū)ο蟆鄳B(tài)、Object類、instanceof關(guān)鍵字以及final關(guān)鍵字

    Java面向?qū)ο蟆鄳B(tài)、Object類、instanceof關(guān)鍵字以及final關(guān)鍵字

    總之,多態(tài)是面向?qū)ο缶幊讨幸粋€非常重要的概念,通過它可以實現(xiàn)統(tǒng)一的接口來操作不同的對象,提高代碼的可讀性和可維護(hù)性。在實際編程中,多態(tài)性的使用可以使代碼更加靈活和擴(kuò)展性更強(qiáng)。方法重寫是實現(xiàn)多態(tài)的基礎(chǔ)。 重寫如下所示 關(guān)于hashCode方法的重寫: 重寫t

    2024年02月12日
    瀏覽(114)
  • c、c++、java、python、js對比【面向?qū)ο?、過程;解釋、編譯語言;封裝、繼承、多態(tài)】

    c、c++、java、python、js對比【面向?qū)ο?、過程;解釋、編譯語言;封裝、繼承、多態(tài)】

    目錄 內(nèi)存管理、適用 區(qū)別 C 手動內(nèi)存管理:C語言沒有內(nèi)置的安全檢查機(jī)制,容易出現(xiàn)內(nèi)存泄漏、緩沖區(qū)溢出等安全問題。 適用于系統(tǒng)級編程 C++ 手動內(nèi)存管理:C++需要程序員手動管理內(nèi)存,包括分配和釋放內(nèi)存,這可能導(dǎo)致內(nèi)存泄漏和指針錯誤。 適用于游戲引擎和系統(tǒng)級編

    2024年02月08日
    瀏覽(51)
  • 【Java基礎(chǔ)教程】(十四)面向?qū)ο笃?· 第八講:多態(tài)性詳解——向上及向下轉(zhuǎn)型、關(guān)鍵字 final與 instanceof的作用~

    【Java基礎(chǔ)教程】(十四)面向?qū)ο笃?· 第八講:多態(tài)性詳解——向上及向下轉(zhuǎn)型、關(guān)鍵字 final與 instanceof的作用~

    掌握final 的主要作用及使用; 掌握對象多態(tài)性的概念以及對象轉(zhuǎn)型的操作; 掌握instanceof 的主要作用及使用; 在Java 中 final稱為終結(jié)器,在Java 里面可以使用 final定義類、方法和屬性,用于表示不可變性 。 final 類:當(dāng)一個類被聲明為 final 時,意味著該類不能被

    2024年02月16日
    瀏覽(114)
  • 面向?qū)ο笤斀猓嫦驅(qū)ο蟮娜筇卣鳎悍庋b、繼承、多態(tài)

    面向?qū)ο笤斀猓嫦驅(qū)ο蟮娜筇卣鳎悍庋b、繼承、多態(tài)

    一、面向?qū)ο笈c面向過程 面向?qū)ο缶幊?(Object-Oriented Programming,簡稱OOP)和 面向過程編程 (Procedural Programming,簡稱PP)是兩種不同的 編程范式 。 面向?qū)ο缶幊虖?qiáng)調(diào)把問題分解成對象,通過封裝、繼承和多態(tài)等機(jī)制,來處理對象之間的關(guān)系 。每個對象都可以獨立地處理自

    2024年02月21日
    瀏覽(23)
  • 面向?qū)ο蟆鄳B(tài)、抽象類、接口

    面向?qū)ο蟆鄳B(tài)、抽象類、接口

    學(xué)習(xí)資料來自:黑馬程序員,內(nèi)容僅為學(xué)習(xí)記錄,侵刪 多態(tài) 多態(tài):事務(wù)存在的多種形態(tài) 多態(tài)的前提:1、有繼承關(guān)系;2、重寫父類方法;3、父類引用指向子類對象 面向?qū)ο?面向?qū)ο蠖鄳B(tài)中成員訪問特點 1.成員方法(動態(tài)綁定):編譯看左邊(父類),運行看右邊(子類)

    2024年02月08日
    瀏覽(28)
  • 面向?qū)ο蟮亩鄳B(tài)

    面向?qū)ο蟮亩鄳B(tài)

    7. 面向?qū)ο筇卣魅憾鄳B(tài)性 概念: 多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(OOP)的一個重要特征,指同一個實體同時具有多種形式, 女朋友養(yǎng)寵物 王者榮耀英雄 7.1 多態(tài)的形式和體現(xiàn) 7.1.1 對象的多態(tài)性 多態(tài)性,是面向?qū)ο笾凶钪匾母拍睿?在 Java 中如何體現(xiàn)的:對象的多態(tài)性:父類的

    2024年02月08日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包