<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                這一節我們來說一說繼承中子父類中的成員變量有什么特征。 我們先看從一個例子說起: ~~~ class Father//父類 { int age1 = 48; } class Son extends Father//子類 { int age2 = 22; public void printInfo() { System.out.println("父親的年齡:"+age1+"\n兒子的年齡:"+age2); } } class ExtendTest2 { public static void main(String[] args) { Son son = new Son(); son.printInfo(); } } ~~~ 我們上面的例子中有一個兒子類繼承了一個父親類,我們看到子類中訪問了父類的年齡這個成員變量,那么我們看下結果: ![](https://box.kancloud.cn/2016-05-18_573c422b0c6b5.jpg) 這時輸出了正確的結果。 但是我們會發現這兩個成員變量的名稱是不一樣的,那么我們來看一種特殊情況,當兩個成員變量名一樣時,會是什么樣子呢? ~~~ class Father//父類 { int age = 48; } class Son extends Father//子類 { int age = 22; public void printInfo() { System.out.println("父親的年齡:"+age+"\n兒子的年齡:"+age); } } ~~~ 此時我們再看結果: ![](https://box.kancloud.cn/2016-05-18_573c422b1eeb3.jpg) 我們發現父親和兒子的年齡都是兒子的年齡,這就出現了問題,當子父類中的成員變量名相同時,我們發現會直接使用子類中的成員變量。 那么怎么解決這個問題呢? 我們很自然想起前面學習時當一個類中成員變量和局部變量同名時,我們使用了this關鍵字進行了區分,那么這里有沒有一個標記讓我們區分子父類中的同名成員變量呢? 答案當然是肯定的,這個關鍵字就是super關鍵字。 我們來看例子: ~~~ class Father//父類 { int age = 48; } class Son extends Father//子類 { int age = 22; public void printInfo() { System.out.println("父親的年齡:"+super.age+"\n兒子的年齡:"+this.age); } } ~~~ 這時我們再看一下運行結果: ![](https://box.kancloud.cn/2016-05-18_573c422b308e3.jpg) 很顯然,結果就是我們想要的。所以我們看到一個新關鍵字super,當子父類中的成員變量同名時,我們用super關鍵字來區分。 同時,我們會發現,this關鍵字和super關鍵字的用法很相似,不過我們一定要明確的是,它們只是相似,而不是相同哦! 為什么這么說呢?我們來說一下兩個關鍵字的不同之處: this關鍵字:代表一個本類對象的引用,這我們之前就已經學習了。 super關鍵字:并不代表父類對象,而代表一個父類的空間。因為我們這里根本就沒創建父類的對象,只有子類的對象。 下面我們再來看一個比較容易產生疑問的地方,就是父類中的私有成員,子類具有訪問權限嗎? 我們直接看例子: ~~~ class Father//父類 { private int age = 48; } class Son extends Father//子類 { int age = 22; public void printInfo() { System.out.println("父親的年齡:"+super.age+"\n兒子的年齡:"+this.age); } } ~~~ 我們把父類中的成員變量私有化,然后看運行結果: ![](https://box.kancloud.cn/2016-05-18_573c422b41467.jpg) 我們會發現在編譯時就已經報了錯,很明顯我們在子類中是不能直接訪問父類中的私有內容。 那么我們要怎么訪問呢,我們可以用以下方法: ~~~ class Father//父類 { private int age = 48; public int getAge() { return this.age; } } class Son extends Father//子類 { int age = 22; public void printInfo() { System.out.println("父親的年齡:"+super.getAge()+"\n兒子的年齡:"+this.age); } } ~~~ 結果: ![](https://box.kancloud.cn/2016-05-18_573c422b5532f.jpg) 我們可以通過上面的方法去訪問一個類中的私有成員哦。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看