国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

9. java 多態(tài)

wanglu1209 / 1590人閱讀

摘要:概念所謂多態(tài),就是指一個引用變量類型在不同的情況下的多種狀態(tài)。需進行強制轉(zhuǎn)換有風險,最好使用進行判斷。繼承在多態(tài)中必須存在有繼承關(guān)系的子類和父類。在中有兩種形式可以實現(xiàn)多態(tài)繼承和接口。

概念

所謂多態(tài),就是指一個引用變量(類型)在不同的情況下的多種狀態(tài)。也可以理解為,多態(tài)是指通過指向父類的指針,來調(diào)用在不同子類中實現(xiàn)的方法。多態(tài)性是對象多種表現(xiàn)形式的體現(xiàn)

多態(tài)性嚴格來說有兩種描述形式:

方法的多態(tài)性:

方法的重載

方法的重寫

對象的多態(tài)性: 指的是發(fā)生在繼承關(guān)系類之中,子類和父類之前的轉(zhuǎn)換問題

向上轉(zhuǎn)型 : 父類 父類對象 = 子類實例

向下轉(zhuǎn)型 : 子類 子類對象 = (子類)父類實例 。 需進行強制轉(zhuǎn)換,有風險,最好使用 instanceof 進行判斷。

class A {
    public void fun(){
        System.out.println("A ");
    }
}

class B extends A{
    public void fun(){  //重寫父類方法
        System.out.println("B");
    }
}
public class testDemo {
    public static void main(String[] args) {
        A a = new B(); //向上轉(zhuǎn)型
        B b = (B)a; //向下轉(zhuǎn)型
        a.fun();
         // a.funb();  //父類中不能調(diào)用子類中擴展的方法
        b.fun();
        System.out.println(a instanceof A);
        System.out.println(a instanceof B);
        System.out.println(b instanceof A);
        System.out.println("**********");
        A a2 = new A();
        System.out.println(a2 instanceof A);
        System.out.println(a2 instanceof B);
    }
}
輸出結(jié)果:
B
B
true
true
true
**********
true
false

Java實現(xiàn)多態(tài)有三個必要條件:繼承、重寫、向上轉(zhuǎn)型。

繼承:在多態(tài)中必須存在有繼承關(guān)系的子類和父類。

重寫:子類對父類中某些方法進行重新定義,在調(diào)用這些方法時就會調(diào)用子類的方法。

向上轉(zhuǎn)型:在多態(tài)中需要將子類的引用賦給父類對象,只有這樣該引用才能夠具備技能調(diào)用父類的方法和子類的方法。

只有滿足了上述三個條件,我們才能夠在同一個繼承結(jié)構(gòu)中使用統(tǒng)一的邏輯實現(xiàn)代碼處理不同的對象,從而達到執(zhí)行不同的行為。

對于Java而言,它多態(tài)的實現(xiàn)機制遵循一個原則:當超類對象引用了子類對象時,被引用對象的類型而不是引用變量的類型決定了調(diào)用誰的成員方法,但是這個被調(diào)用的方法必須是在超類中定義過的,也就是說被子類覆蓋的方法。

多態(tài)分為編譯時多態(tài)和運行時多態(tài)。其中編輯時多態(tài)是靜態(tài)的,主要是指方法的重載,它是根據(jù)參數(shù)列表的不同來區(qū)分不同的函數(shù),通過編輯之后會變成兩個不同的函數(shù),在運行時談不上多態(tài)。而運行時多態(tài)是動態(tài)的,它是通過動態(tài)綁定來實現(xiàn)的,也就是我們所說的多態(tài)性。

在Java中有兩種形式可以實現(xiàn)多態(tài):繼承和接口。

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

消除類型之間的耦合關(guān)系

可替換性

可擴充性

接口性

靈活性

簡化性

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73555.html

相關(guān)文章

  • Java多態(tài)

    摘要:調(diào)用的是的方法,因為向上轉(zhuǎn)型為,那么只能調(diào)用類的方法,里參數(shù)有和兩種,所以對應(yīng)于對應(yīng)于對應(yīng)于,由于多態(tài)性,最終調(diào)用的是即由于是的子類,那么可以繼承的所有非方法,當然的也在內(nèi),所以,就直接調(diào)用的是即 1.基于繼承覆蓋 子類覆蓋父類的方法,實現(xiàn)多態(tài) 抽象 子類實現(xiàn)父類的抽象方法,實現(xiàn)多態(tài) 2.基于接口 3.案例 摘自http://www.cnblogs.com/chenss... publ...

    Charles 評論0 收藏0
  • Java 面向?qū)ο筇匦灾?em>多態(tài)性

    摘要:多態(tài)性面向?qū)ο笕筇匦苑庋b繼承多態(tài)。面向?qū)ο蠖鄳B(tài)性存在的三個必要條件繼承重寫父類引用指向子類對象多態(tài)性的實現(xiàn)方式重寫與重載靜態(tài)多態(tài)性方法重載方法重載允許類具有多個相同名稱的方法,但是方法參數(shù)列表不同。 多態(tài)性 面向?qū)ο螅∣OP)三大特性:封裝、繼承、多態(tài)。 多態(tài)性(polymorphism)指同一行為具有多種不同表現(xiàn)形式,在面向?qū)ο蟪绦蛟O(shè)計中表現(xiàn)為同一消息可以根據(jù)發(fā)送對象的類型不同,做...

    _ang 評論0 收藏0
  • Java問題匯總,持續(xù)更新到GitHub

    摘要:目錄介紹問題匯總具體問題好消息博客筆記大匯總年月到至今,包括基礎(chǔ)及深入知識點,技術(shù)博客,學習筆記等等,還包括平時開發(fā)中遇到的匯總,當然也在工作之余收集了大量的面試題,長期更新維護并且修正,持續(xù)完善開源的文件是格式的同時也開源了生活博客,從年 目錄介紹 00.Java問題匯總 01.具體問題 好消息 博客筆記大匯總【16年3月到至今】,包括Java基礎(chǔ)及深入知識點,Android技...

    beita 評論0 收藏0
  • 談?wù)?em>Java的面向?qū)ο?/b>

    摘要:也就是說,一個實例變量,在的對象初始化過程中,最多可以被初始化次。當所有必要的類都已經(jīng)裝載結(jié)束,開始執(zhí)行方法體,并用創(chuàng)建對象。對子類成員數(shù)據(jù)按照它們聲明的順序初始化,執(zhí)行子類構(gòu)造函數(shù)的其余部分。 類的拷貝和構(gòu)造 C++是默認具有拷貝語義的,對于沒有拷貝運算符和拷貝構(gòu)造函數(shù)的類,可以直接進行二進制拷貝,但是Java并不天生支持深拷貝,它的拷貝只是拷貝在堆上的地址,不同的變量引用的是堆上的...

    ormsf 評論0 收藏0
  • Thinking in Java-接口

    摘要:具體而言就是高層模塊不依賴于底層模塊,二者都同依賴于抽象抽象不依賴于具體,具體依賴于抽象。 9.接口 9.1 抽象類和抽象方法 抽象類:包含抽象方法的類,自身無法實例化 抽象方法:僅有聲明,沒有方法體 關(guān)系:抽象方法是抽象類的充分不必要條件,因此抽象類中允許方法實現(xiàn)和抽象方法同時存在 語法 // 抽象類 abstract class ClassName{} // 抽象方法 ab...

    silenceboy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<