黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java基礎學習:java覆蓋父類的方法

Java基礎學習:java覆蓋父類的方法

更新時間:2020-04-21 14:22:50 來源:動力節點 瀏覽5671次

    JAVA本身并不提供子類“覆蓋”父類成員變量的方法,而事實上,從面相對象的角度上來說,子類也不應當可以“覆蓋”父類的成員變量。但有時候我們就是有這種需求,比如:

    Java

Java基礎學習:java覆蓋父類的方法

    我們期望能夠打印出

    Dad

    但實際上會打印出

    Person

    原因分析

    實際上,即使子類聲明了與父類完全一樣的成員變量,也不會覆蓋掉父類的成員變量。而是在子類實例化時,會同時定義兩個成員變量,子類也可以同時訪問到這兩個成員變量,但父類不能訪問到子類的成員變量(父類不知道子類的存在)。而具體在方法中使用成員變量時,究竟使用的是父類還是子類的成員變量,則由方法所在的類決定;即,方法在父類中定義和執行,則使用父類的成員變量,方法在子類中定義(包括覆蓋父類方法)和執行,則使用子類的成員變量。

    解決方法

    采用get()/set()

    Java

Java基礎學習:java覆蓋父類的方法

    得到結果:

    Dad

    由于dad.getName()執行的是子類中重載父類的getName(),因此返回的也是子類中定義的name。這種方法最為推薦,但用起來也繁瑣一些。因為這種方法同時維護了兩個相同的成員變量,因此使用起來也得小心一些。

    使用父類成員函數

    Java

Java基礎學習:java覆蓋父類的方法

    得到結果:

    Dad

    這種方法是在子類的構造函數上做文章。子類的hisName即子類自己的成員變量,但只在構造函數中使用,而在構造函數中就是通過super給父類的成員變量賦值。這樣做的好處就是只有一個成員變量,沒有出現真正的“覆蓋”的問題,而且父類和子類中的方法也可以放心大膽用這個成員變量,不用擔心隱藏的問題;壞處當然就是不太“正規”了。

    通過static塊

    Java

   Java基礎學習:java覆蓋父類的方法

    得到結果:

    Dad

    這個方法和上面的那個很像,但從原理上來說還是有些區別的。static塊會在類初始化而不是實例化時被執行,而父類中的static成員變量會在子類static塊執行前就定義完成,所以子類初始化時會修改父類的成員變量值,子類實例化時自然得到的父類成員變量值也是修改過的,這樣完成了“覆蓋”。

    這種方法就像:

    Java

    publicclassDadextendsPerson{

    name="Dad";

    }

    但上面這段代碼是錯誤的,JAVA中變量是不能在方法之外進行賦值操作的;而static塊恰恰是利用了JAVA會無條件執行staitc塊這一特性,達到了這個目的。這種方法說壞處的話,估計就是成員變量必須是static了。

 以上就是動力節點java培訓機構的小編針對“Java基礎學習:java覆蓋父類的方法”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 未成人禁止视频高清在线观看 | 91精品国产自产在线观看 | 色香欲亚洲天天综合网 | 日本高清中文字幕一区二区三区 | 国产不卡一区二区三区免费视 | 成人在线天堂 | 97欧美在线看欧美视频免费 | 亚洲天堂视频在线免费观看 | 波多野结衣中文字幕在线 | 深夜在线网站 | 这里只有精品99re在线 | 欧美一级在线观看 | 亚洲第一中文字幕 | 欧美视频在线观看一区 | 性欧美video另类hd高清 | 在线视频天堂 | 日韩三级免费观看 | 天天躁狠狠躁夜夜躁 | 制服丝袜在线一区 | 成人午夜看片 | 欧美日韩国产在线人成 | 日韩国产成人精品视频 | 亚洲欧美另类自拍第一页 | 天天躁狠狠躁 | 黄色片黄色片黄色片黄色片黄色片 | 欧美另类性 | 亚洲一区 欧美 | 国产精品天干天干在线综合 | 中国精品久久 | 欧美黄色免费网站 | 欧美jizz18性欧美 | 国产精品一区久久精品 | 男女做爽爽视频免费观看 | 一本大道在线 | 欧美很黄视频在线观看 | 日韩三级伦理在线 | 特级一级毛片 | 中文字幕成人在线观看 | 久久免费高清视频 | 一级毛片免费视频观看 | 全免费一级毛片在线播放 |