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

Java多態(tài)成員訪問的特點(diǎn)是什么?

 更新時(shí)間:2021年06月13日 09:10:18   作者:Lf_MrF  
在上一篇文章中介紹了方法重載和方法重寫的區(qū)別,但是在多態(tài)情況下發(fā)現(xiàn)程序的執(zhí)行結(jié)果和我們預(yù)期的不太一樣,這篇將繼續(xù)介紹多態(tài)場(chǎng)景下,Java成員訪問的特點(diǎn),需要的朋友可以參考下

Java多態(tài)成員訪問的特點(diǎn)

多態(tài)概要

多態(tài)是面向?qū)ο缶幊痰娜齻€(gè)特性之一,這里不展開做過多介紹,有機(jī)會(huì)專門寫一個(gè)關(guān)于繼承,封裝,多態(tài)三大特性的文章.
我之前在力扣學(xué)習(xí)模塊中整理過一部分關(guān)于這方面的內(nèi)容,可以先簡單了解一下.
力扣知補(bǔ)-面向?qū)ο?繼承

Java多態(tài)使用最多的場(chǎng)景在于父類引用指向子類對(duì)象.

多態(tài)的前提:

  • 存在繼承關(guān)系(Son繼承Father)
  • 存在方法重寫(Son重寫Fahter中的Walk方法)
  • 父類引用指向子類對(duì)象(Father father = new Son(true);)

Java多態(tài)情景下成員訪問特點(diǎn)

多態(tài)情景下主要涉及三部分的訪問規(guī)則,分別是對(duì)成員變量,成員方法和靜態(tài)方法的訪問.
這里只拷貝多態(tài)測(cè)試類的代碼,同時(shí)簡單介紹一下Father類和Son類的情況.
Father類中有一個(gè)boolean canRun變量固定為False,子類中的canRun成員變量由構(gòu)造方法傳入.

walk(boolean canRun):如果canRun是True則輸出Father/Son可以跑,否則輸出Father/Son只能走.
public class Test {
    public static void main(String[] args) {
        Father father = new Son(true);
        System.out.println(father.isCanRun());
        father.walk(father.isCanRun());
        father.run();
    }
}

成員變量訪問規(guī)則

Father father = new Son(true);
成員變量訪問口訣是編父運(yùn)父或者編左運(yùn)左,進(jìn)一步簡化成為看父類.
解釋:就是在編譯階段只要父類能夠通過編譯,無論右側(cè)的類怎么定義都不會(huì)報(bào)錯(cuò),在執(zhí)行過程中的執(zhí)行結(jié)果也是按照父類中變量來決定運(yùn)行的結(jié)果.
雖然我們給Son中傳入的參數(shù)是true,但是對(duì)于成員father中的變量的訪問還是由父類決定.
所以當(dāng)我們使用father.isCanRun()訪問canRun變量的時(shí)候返回的結(jié)果是false

成員方法訪問規(guī)則

成員方法訪問口訣是編父運(yùn)子或著編左運(yùn)右.
展開解釋就是在編譯階段只要父類能夠通過編譯,無論右側(cè)的類怎么定義都不會(huì)報(bào)錯(cuò),在執(zhí)行過程中的執(zhí)行結(jié)果需要按照子類中重寫的方法(兒子中重寫方法返回的是兒子是否能跑)來決定運(yùn)行的結(jié)果.
所以當(dāng)我們調(diào)用father.walk()方法的時(shí)候返回的結(jié)果是兒子只能跑!.

靜態(tài)方法訪問規(guī)則

靜態(tài)方法訪問的口訣是編父運(yùn)父或編左運(yùn)左和成員變量一樣都是看父類.

/*
	在父類和子類中都添加上靜態(tài)方法
	*/
	// 父類
    public static void run(){
        System.out.println("父親遇到搶劫犯了!不得不跑!");
    }
    // 子類
    public static void run(){
        System.out.println("兒子遇到搶劫犯了!不得不跑!");
    }

調(diào)用father.run()返回的結(jié)果是父親遇到搶劫犯了!不得不跑!
證明了在多態(tài)情況下調(diào)用靜態(tài)方法時(shí)還是調(diào)用的左側(cè)-父類中定義的靜態(tài)方法.

這部分我的理解也不是特別深刻,以后有時(shí)間還想補(bǔ)充集中情況
子類中是否能夠在靜態(tài)代碼塊中調(diào)用父類的靜態(tài)方法等等場(chǎng)景
先繼續(xù)向后學(xué)習(xí),后面會(huì)整理Java虛擬機(jī)相關(guān)知識(shí),結(jié)合類的加載等內(nèi)容可能回頭會(huì)對(duì)這部分理解更深刻.

參考/擴(kuò)展閱讀

Java基礎(chǔ)系列第一彈之方法重載和方法重寫的區(qū)別

Java基礎(chǔ)系列第三彈之操作字符串的類都有哪些?區(qū)別是什么?

到此這篇關(guān)于Java多態(tài)成員訪問的特點(diǎn)是什么?的文章就介紹到這了,更多相關(guān)Java多態(tài)成員訪問內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java序列化中子類、父類構(gòu)造函數(shù)問題實(shí)例分析

    Java序列化中子類、父類構(gòu)造函數(shù)問題實(shí)例分析

    這篇文章主要介紹了Java序列化中子類、父類構(gòu)造函數(shù)問題,結(jié)合實(shí)例形式分析了java父類與子類構(gòu)造函數(shù)中序列化接口調(diào)用相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • MyBatis 參數(shù)映射機(jī)制實(shí)踐記錄

    MyBatis 參數(shù)映射機(jī)制實(shí)踐記錄

    這篇文章主要介紹了MyBatis 參數(shù)映射機(jī)制實(shí)踐記錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-12-12
  • Java以編程方式實(shí)現(xiàn)JAR文件的創(chuàng)建

    Java以編程方式實(shí)現(xiàn)JAR文件的創(chuàng)建

    在這篇文章中,我們將為大家詳細(xì)介紹一下利用Java語言以編程方式創(chuàng)建jar文件的過程。文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • java兩種單例模式用法分析

    java兩種單例模式用法分析

    這篇文章主要介紹了java兩種單例模式用法,結(jié)合實(shí)例形式對(duì)比分析了java實(shí)現(xiàn)單例模式的兩種常見技巧,需要的朋友可以參考下
    2016-08-08
  • SpringMVC框架搭建idea2021.3.2操作數(shù)據(jù)庫的示例詳解

    SpringMVC框架搭建idea2021.3.2操作數(shù)據(jù)庫的示例詳解

    這篇文章主要介紹了SpringMVC框架搭建idea2021.3.2操作數(shù)據(jù)庫,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 淺談Spring Boot Web 應(yīng)用性能優(yōu)化

    淺談Spring Boot Web 應(yīng)用性能優(yōu)化

    這篇文章主要介紹了淺談Spring Boot Web 應(yīng)用性能優(yōu)化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Spring配置文件中parent與abstract的使用

    Spring配置文件中parent與abstract的使用

    這篇文章主要介紹了Spring配置文件中parent與abstract的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(5)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(5)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Spring中的ApplicationRunner接口的使用詳解

    Spring中的ApplicationRunner接口的使用詳解

    這篇文章主要介紹了Spring中的ApplicationRunner接口的使用詳解,ApplicationRunner使用起來很簡單,只需要實(shí)現(xiàn)CommandLineRunner或者ApplicationRunner接口,重寫run方法就行,需要的朋友可以參考下
    2023-11-11
  • java單向鏈表的實(shí)現(xiàn)實(shí)例

    java單向鏈表的實(shí)現(xiàn)實(shí)例

    java單向鏈表的實(shí)現(xiàn)實(shí)例。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-10-10

最新評(píng)論

梨树县| 南川市| 错那县| 邛崃市| 娄烦县| 凌源市| 泾川县| 石河子市| 衡山县| 洛宁县| 广元市| 微山县| 太仓市| 鄄城县| 巴里| 洪湖市| 阳东县| 阿鲁科尔沁旗| 雷波县| 黄龙县| 平定县| 牟定县| 澜沧| 九寨沟县| 阿克陶县| 那曲县| 黄浦区| 南澳县| 双城市| 荔波县| 扬中市| 昆山市| 永平县| 施秉县| 资阳市| 拜城县| 定南县| 巴青县| 会泽县| 海淀区| 故城县|