最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java向上轉(zhuǎn)型和向下轉(zhuǎn)型的區(qū)別說明

 更新時間:2022年06月10日 09:16:30   作者:doublewe  
這篇文章主要介紹了Java向上轉(zhuǎn)型和向下轉(zhuǎn)型的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

向上轉(zhuǎn)型和向下轉(zhuǎn)型的區(qū)別

前言:

  • 向上轉(zhuǎn)型:父類引用類型指向了子類的實例對象,此時無法使用子類里的成員變量以及方法。
  • 向下轉(zhuǎn)型:通過引用類型強轉(zhuǎn),恢復(fù)了子類的成員變量以及方法。

1.代碼實現(xiàn)

可以發(fā)現(xiàn),父類雖然指向了子類的實例對象,但是并不能調(diào)用子類對象的方法,編譯器報錯。此時我們可以看作被隱藏了,那么怎樣才可以把被隱藏的方法放出來呢?此時就需要向下轉(zhuǎn)型。

2.實現(xiàn)向下轉(zhuǎn)型

將a強轉(zhuǎn)為Son引用類型。

((Son)a).sleep();   //調(diào)用子類的sleep方法

3.此時執(zhí)行程序

成功向下轉(zhuǎn)型,那么這樣有什么作用呢?

其實,無論是上轉(zhuǎn)還是下轉(zhuǎn)都是為了讓類的使用范圍和適用范圍發(fā)生變化,以便操作不同范圍的變量或者方法。

這樣其實就是一個java的繼承多態(tài),利于程序擴展。

我們需要這種設(shè)計方式,才會寫出更易維護、簡潔的代碼。

簡單認識向上轉(zhuǎn)型和向下轉(zhuǎn)型

向上轉(zhuǎn)型:父類引用指向子類對象

例如:子類student繼承了父類person

Person person = new Student();

向上轉(zhuǎn)型后的變化

關(guān)于方法:person可以調(diào)用子類和父類公用的方法(如果子類重寫了父類的方法,則調(diào)用子類的方法),子類特有的方法無法調(diào)用。

關(guān)于屬性: person可以調(diào)用父類的屬性,不可以調(diào)用子類的屬性。

向上轉(zhuǎn)型的作用

減少一些重復(fù)的代碼

對象實例化的時候可以根據(jù)不同需求實例化不同的對象

向下轉(zhuǎn)型:子類引用指向父類對象

Father f=new Son() //先向上轉(zhuǎn)型
Son s=(Son) f;//再進行向下轉(zhuǎn)型,進行強制轉(zhuǎn)換,子類引用s,父類引用f

向下轉(zhuǎn)型的條件:先向上轉(zhuǎn)型,再向下轉(zhuǎn)型。沒有經(jīng)過向上轉(zhuǎn)型,會提示編譯錯誤。

向下轉(zhuǎn)型后的變化

關(guān)于方法:可以調(diào)用子類的所有方法,和屬性,類型轉(zhuǎn)為子類

關(guān)于屬性:調(diào)用的屬性為子類的屬性。

向下轉(zhuǎn)型的作用:向上轉(zhuǎn)型時 ,會遺失子類對象獨有的其他方法;可以通過向下轉(zhuǎn)型在重新轉(zhuǎn)回。

這種轉(zhuǎn)型可能存在轉(zhuǎn)型失敗地風(fēng)險,因為父類地范圍更廣,如果不確定父類對象就是該子類的對象,不推薦使用向下轉(zhuǎn)型。

Person person = new Student();
Teacher teacher = (Teacher) person; // 不安全

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringCloud?Nacos服務(wù)分級存儲模型詳解

    SpringCloud?Nacos服務(wù)分級存儲模型詳解

    Nacos服務(wù)分級存儲模型是Nacos存儲服務(wù)注冊信息和配置信息的核心模型之一,本文將對?Nacos?服務(wù)分級存儲模型進行深入解析,感興趣的朋友一起看看吧
    2024-02-02
  • Java面向?qū)ο笾畠?nèi)部類詳解

    Java面向?qū)ο笾畠?nèi)部類詳解

    在 Java 中,允許一個類的定義位于另一個類的內(nèi)部,前者稱為內(nèi)部類,后者稱為外部類。這篇文章將總結(jié)一下內(nèi)部類的使用,感興趣的可以了解一下
    2022-10-10
  • Java?Swing實現(xiàn)畫板的簡單操作

    Java?Swing實現(xiàn)畫板的簡單操作

    這篇文章主要介紹了Java?Swing實現(xiàn)畫板的簡單操作,修改顏色,更改圖形,清除,任務(wù)欄按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java日期轉(zhuǎn)換注解配置date?format時間失效

    Java日期轉(zhuǎn)換注解配置date?format時間失效

    這篇文章主要為大家介紹了Java日期轉(zhuǎn)換注解配置date?format時間失效,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 利用synchronized實現(xiàn)線程同步的案例講解

    利用synchronized實現(xiàn)線程同步的案例講解

    這篇文章主要介紹了利用synchronized實現(xiàn)線程同步的案例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • maven多個plugin相同phase的執(zhí)行順序

    maven多個plugin相同phase的執(zhí)行順序

    這篇文章主要介紹了maven多個plugin相同phase的執(zhí)行順序,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java匿名內(nèi)部類原理與用法詳解

    Java匿名內(nèi)部類原理與用法詳解

    這篇文章主要介紹了Java匿名內(nèi)部類原理與用法,結(jié)合實例形式分析了Java匿名內(nèi)部類的概念、原理、應(yīng)用與相關(guān)操作注意事項,需要的朋友可以參考下
    2019-09-09
  • Mybatis resultType返回結(jié)果為null的問題排查方式

    Mybatis resultType返回結(jié)果為null的問題排查方式

    這篇文章主要介紹了Mybatis resultType返回結(jié)果為null的問題排查方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 一個JAVA小項目--Web應(yīng)用自動生成Word

    一個JAVA小項目--Web應(yīng)用自動生成Word

    前段時間接到一個Web應(yīng)用自動生成Word的需求,現(xiàn)整理了下一些關(guān)鍵步驟拿來分享一下。
    2014-05-05
  • Spring?Boot應(yīng)用打WAR包后無法注冊到Nacos的問題及解決方法

    Spring?Boot應(yīng)用打WAR包后無法注冊到Nacos的問題及解決方法

    當(dāng)我們將?Spring?Boot?應(yīng)用打包成?WAR?并部署到外部?Tomcat?服務(wù)器時,可能會遇到服務(wù)無法注冊到?Nacos?的情況,其原因主要是應(yīng)用獲取不到正確的服務(wù)器端口,下面給大家介紹Spring?Boot?應(yīng)用打?WAR?包后無法注冊到?Nacos的問題及解決方法,感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評論

台州市| 东方市| 灯塔市| 温泉县| 通化市| 漳平市| 厦门市| 金华市| 福建省| 定结县| 民勤县| 蒙自县| 盐边县| 临澧县| 桐乡市| 清河县| 镇巴县| 宜宾市| 东山县| 乐东| 麻江县| 永登县| 莒南县| 辽阳县| 盈江县| 宜春市| 包头市| 天等县| 偏关县| 雅江县| 辛集市| 会理县| 延边| 曲靖市| 乌拉特后旗| 双桥区| 饶平县| 潞城市| 安远县| 大方县| 民丰县|