国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java筆記--多態(tài)

2023-09-04 20:41 作者:爪哇島江戶川  | 我要投稿

一、多態(tài)介紹

同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力。


二、多態(tài)前提

1、有繼承/實(shí)現(xiàn)關(guān)系

2、有方法重寫

3、有父類引用指向子類對象

我們在這里創(chuàng)建一個抽象類和兩個子類,然后子類將父類方法重寫。

接著我們用父類引用指向子類對象

我們可以發(fā)現(xiàn),左右兩邊的類型并不相同但是并沒有報錯。

三、多態(tài)的好處

1、對象多態(tài):

前面我們用父類引用可以指向子類對象就是對象多態(tài)的一個例子。

2、行為多態(tài):

我們在主方法下面創(chuàng)建一個新的方法,然后將方法的形參設(shè)置為父類對象。

然后我們將兩個子類對象分別傳入父類方法中

發(fā)現(xiàn)方法中可以接收兩種子類對象。


四、多態(tài)中成員訪問特點(diǎn)

1、成員變量:編譯看左邊(父類),運(yùn)行看左邊(父類)

我們先創(chuàng)建一個父類和一個子類,將父類中的num定義為10,將子類中的num定義為20,然后我們用父類引用去指向子類對象,然后打印出對象num變量的值。

我們會看到,打印出的num值是父類中的值。

2、成員方法:編譯看左邊(父類),運(yùn)行看右邊(子類)

我們用對象去調(diào)用成員方法

發(fā)現(xiàn)結(jié)果走的是子類的成員方法

因?yàn)槌绦驎?dān)心調(diào)用的父類的方法是一個抽象方法,所以會走子類的重寫方法。

3、特殊情況:

前面我們說過建議被static修飾的成員變量和成員方法,建議使用類名去調(diào)用。在多態(tài)中假如我們?nèi)ナ褂脤ο竺{(diào)用靜態(tài)的static成員方法,程序會運(yùn)行父類的方法,因?yàn)樵谧止?jié)碼文件生成之后,程序會自動將對象名改為類名去調(diào)用。

五、多態(tài)的好處和弊端

1、好處:提高了程序的擴(kuò)展性

2、弊端:不能使用子類特有的成員

六、多態(tài)中的轉(zhuǎn)型

1、向上轉(zhuǎn)型

從子到父:父類引用指向子類對象

將子類對象的地址賦值給父類引用

2、向下轉(zhuǎn)型

從父到子:將父類引用所指的對象,轉(zhuǎn)交給子類類型。

這里不能直接賦值,必須做強(qiáng)制類型轉(zhuǎn)換。

七、注意事項:

當(dāng)我們用轉(zhuǎn)型去調(diào)用對象的方法時,很容易報錯,因?yàn)槲覀儾荒芘袛噙@個對象是不是這個類的成員。

我們可以利用if語句和instanceof關(guān)鍵字來判斷左邊的引用是不是右邊的數(shù)據(jù)類型。


Java筆記--多態(tài)的評論 (共 條)

分享到微博請遵守國家法律
扎赉特旗| 龙口市| 侯马市| 仁化县| 龙岩市| 福贡县| 鄂州市| 屏南县| 惠来县| 宜丰县| 中山市| 双桥区| 十堰市| 辽源市| 乌什县| 资中县| 萍乡市| 榕江县| 长沙县| 杂多县| 双牌县| 阳城县| 靖西县| 乌兰浩特市| 扎鲁特旗| 尼玛县| 通城县| 石楼县| 会理县| 南京市| 芮城县| 珠海市| 鄂托克旗| 惠安县| 抚顺市| 武鸣县| 哈巴河县| 崇义县| 九寨沟县| 长春市| 崇仁县|