亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

前言:

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

1.代碼實(shí)現(xiàn)

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

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

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

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

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

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

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

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

我們需要這種設(shè)計(jì)方式,才會(huì)寫出更易維護(hù)、簡(jiǎn)潔的代碼。

簡(jiǎn)單認(rèn)識(shí)向上轉(zhuǎn)型和向下轉(zhuǎn)型

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

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

Person person = new Student();

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

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

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

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

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

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

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

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

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

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

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

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

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

這種轉(zhuǎn)型可能存在轉(zhuǎn)型失敗地風(fēng)險(xiǎn),因?yàn)楦割惖胤秶鼜V,如果不確定父類對(duì)象就是該子類的對(duì)象,不推薦使用向下轉(zhuǎn)型。

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

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

相關(guān)文章

  • java重寫(@Override)介紹以及舉例說(shuō)明

    java重寫(@Override)介紹以及舉例說(shuō)明

    這篇文章主要給大家介紹了關(guān)于java重寫(@Override)介紹以及舉例說(shuō)明的相關(guān)資料,在Java中@Override注解用于表示方法重寫(覆蓋)了父類的方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java利用線程工廠監(jiān)控線程池的實(shí)現(xiàn)示例

    Java利用線程工廠監(jiān)控線程池的實(shí)現(xiàn)示例

    這篇文章主要介紹了Java利用線程工廠監(jiān)控線程池的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • javaweb圖書商城設(shè)計(jì)之用戶模塊(1)

    javaweb圖書商城設(shè)計(jì)之用戶模塊(1)

    這篇文章主要介紹了javaweb圖書商城設(shè)計(jì)之用戶模塊的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • java底層AQS實(shí)現(xiàn)類ReentrantLock鎖的構(gòu)成及源碼解析

    java底層AQS實(shí)現(xiàn)類ReentrantLock鎖的構(gòu)成及源碼解析

    本章我們就要來(lái)學(xué)習(xí)一下第一個(gè)?AQS?的實(shí)現(xiàn)類:ReentrantLock,看看其底層是如何組合?AQS?,實(shí)現(xiàn)了自己的那些功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • java 日期各種格式之間的相互轉(zhuǎn)換實(shí)例代碼

    java 日期各種格式之間的相互轉(zhuǎn)換實(shí)例代碼

    這篇文章主要介紹了java 日期各種格式之間的相互轉(zhuǎn)換實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • druid連接泄露故障全面分析

    druid連接泄露故障全面分析

    這篇文章主要介紹了druid連接泄露故障全面分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • spring boot項(xiàng)目同時(shí)傳遞參數(shù)和文件的多種方式代碼演示

    spring boot項(xiàng)目同時(shí)傳遞參數(shù)和文件的多種方式代碼演示

    這篇文章主要介紹了spring boot項(xiàng)目同時(shí)傳遞參數(shù)和文件的多種方式,在開發(fā)接口中,遇到了需要同時(shí)接收參數(shù)和文件的情況,可以有多種方式實(shí)現(xiàn)文件+參數(shù)的接收,這里基于spring boot 3 + vue 3 + axios,做一個(gè)簡(jiǎn)單的代碼演示,需要的朋友可以參考下
    2023-06-06
  • Vue結(jié)合Springboot實(shí)現(xiàn)用戶列表單頁(yè)面(前后端分離)

    Vue結(jié)合Springboot實(shí)現(xiàn)用戶列表單頁(yè)面(前后端分離)

    本文主要介紹了Vue結(jié)合Springboot實(shí)現(xiàn)用戶列表單頁(yè)面,可以實(shí)現(xiàn)簡(jiǎn)單的查詢,刪除,修改,和添加用戶信息功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 如何在Java中獲取當(dāng)前年份(實(shí)例代碼)

    如何在Java中獲取當(dāng)前年份(實(shí)例代碼)

    在Java語(yǔ)言中獲取當(dāng)前年份有幾種方法:使用java.util包下的Calendar類,使用java.time包下的LocalDate類或者使用java.text包下的SimpleDateFormat類,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-11-11
  • String轉(zhuǎn)BigDecimal,BigDecimal常用操作,以及避免踩坑記錄

    String轉(zhuǎn)BigDecimal,BigDecimal常用操作,以及避免踩坑記錄

    這篇文章主要介紹了String轉(zhuǎn)BigDecimal,BigDecimal常用操作,以及避免踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評(píng)論