<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一個小問題引發的思考

    Posted on 2006-10-11 20:17 久城 閱讀(257) 評論(0)  編輯  收藏 所屬分類: JavaTest

    曾經遇到過這樣一個小問題:

    class?A {
    private int i=1;
    public int getI(){
    return i;
    }
    public void setI(int i){
    this.i=i;
    }
    }

    public class?B extends?A {
    int i=2;
    public static void main (String [] args) {
    B?b = new B();
    System.out.println(b.getI());
    }
    }

    結果是1,而不是2.
    這個問題感覺還不錯。

    1.并不是private成員不會被繼承.事實上子類可以繼承父類的任何變量和方法。private、protected只是訪問權限而已。即使i是public的
    輸出結果也肯定是1.

    2.方法可以覆蓋,成員變量并沒有覆蓋一說,也就是子類的i和父類的i是共存在子類體內的。父類對象中有i變量、set get兩個方法。子類class中應有i【繼承于父類對象】、i【子類對象】兩個變量、set get兩個方法【繼承于父類對象】。

    3.java中的原則是調用的是哪個類的方法,那么這個方法訪問的就是這個類中的成員。子類中沒有覆蓋public int getI()這個方法的話,那么子類調用的其實是父類的getI()方法.所以返回的是父類中的i.

    所以如果子類覆蓋了getI()方法,那么就會輸出的是子類中的i了,因為調用的是子類中的方法。

    以上是我曾經遇到的一個問題,今天遇到另一個例子,進而進行思考!

    class A{
    ?public int m = 1;
    ?A(){
    ??System.out.println("A have construct");
    ??System.out.println(m);
    ??tt();//因為tt()方法已經被覆蓋,所以此處調用的是子類的tt()方法;
    //子類的數據成員此時還未顯式的初始化,所以返回值為默認的0;
    }
    ?public void tt(){
    ??System.out.println(m);
    ?}
    }
    public class B extends A{
    ?public int n = 2;
    ?B(){
    ??System.out.println("B have construct");
    ??System.out.println(n);
    ??tt();
    }
    ?public void tt(){
    ??System.out.println(n);
    ?}
    ?public static void main(String args[]){
    ??B b = new B();
    ?}
    }?

    輸出結果是:
    A have construct
    1
    0
    B have construct
    2
    2

    如注釋部分的解說!
    這個例子中,B中的tt()方法已經覆蓋了父類中的tt()方法.所以在執行父類的構造方法時,調用的是子類的tt()方法;

    PS:
    構造一個對象的過程是:
    先父類,后子類;
    先成員變量初始化,后構造函數.



    歡迎來訪!^.^!
    本BLOG僅用于個人學習交流!
    目的在于記錄個人成長.
    所有文字均屬于個人理解.
    如有錯誤,望多多指教!不勝感激!

    Copyright © 久城

    主站蜘蛛池模板: 免费A级毛片无码A∨男男| 日本妇人成熟免费中文字幕| 国产高清视频在线免费观看| 亚洲人成影院77777| 日本在线高清免费爱做网站| 亚洲综合伊人制服丝袜美腿| 久久精品女人天堂AV免费观看| 亚洲人成激情在线播放| 午夜两性色视频免费网站| 亚洲妇女无套内射精| 四虎永久免费网站免费观看| 老司机精品视频免费| 综合久久久久久中文字幕亚洲国产国产综合一区首| 黄色毛片免费在线观看| 久久九九亚洲精品| 91短视频在线免费观看| 中文无码亚洲精品字幕| 亚洲AV成人精品日韩一区18p| 一区二区三区免费视频观看 | 免费在线观看理论片| 九九免费观看全部免费视频| 国产精品亚洲A∨天堂不卡 | 国产在线观看免费视频软件| 亚洲欧洲日产国码久在线观看| 69堂人成无码免费视频果冻传媒| 亚洲精品日韩一区二区小说| 久久久久亚洲AV无码专区网站| 日韩精品无码一区二区三区免费| 亚洲AV综合色区无码二区爱AV| 免费一看一级毛片| 日韩精品人妻系列无码专区免费| 亚洲成_人网站图片| 久久久久亚洲av毛片大| 国产无人区码卡二卡三卡免费| 男女作爱免费网站| 亚洲自偷精品视频自拍| 国产免费观看黄AV片| 免费国产黄网站在线观看视频| 日韩亚洲综合精品国产| 亚洲人成影院在线| 亚洲av无码天堂一区二区三区|