<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # this 程序題 **題目一** ~~~ class Tester{ int var; Tester(double var){this.var = (int)var}; Tester(int var){this("hello"); Tester(String s){ this(); System.out.println(s); } Tester(){ System.out.println("good-bye");} } ~~~ Tester t = new Tester(5) 的輸出是什么? ~~~ good-bye hello ~~~ **題目二** 貌似和 this 無關但是很重要 public class Base { int i; ~~~ Base(){ add(1); System.out.println(i); } void add(int v){ i+=v; System.out.println(i); } } public class MyBase extends Base{ MyBase(){ System.out.println("MyBase"); add(2); } void add(int v){ System.out.println("MyBase Add"); i+=v*2; System.out.println(i); } } public class Test { public static void main(String[] args) { go(new MyBase()); } static void go(Base b){ b.add(8); } } ~~~ 輸出的結果是 22 子類會首先調用父類的構造函數,在父類的構造函數 Base() 中執行 add() 方法. 但這個 add() 方法由于是在新建 MyBase 對象時調用的. 所以是執行的 MyBase 中的 add 方法 在Java中,子類的構造過程中,必須 調用其父類的構造函數,是因為有繼承關系存在時,子類要把父類的內容繼承下來,通過什么手段做到的?這樣:當你new一個子類對象的時候,必須首先要new一個父類的對像出來,這個父類對象位于子類對象的內部,所以說,子類對象比父類對象大,子類對象里面包含了一個父類的對象,這是內存中真實的情況. 構造方法是new一個對象的時候,必須要調的方法,這是規定,要new父類對象出來,那么肯定要調用其構造方法,所以**第一個規則:子類的構造過程中,必須 調用其父類的構造方法** 一個類,如果我們不寫構造方法,那么編譯器會幫我們加上一個默認的構造方法,所謂默認的構造方法,就是沒有參數的構造方法,但是如果你自己寫了構造方法,那么編譯器就不會給你添加了 所以有時候當你new一個子類對象的時候,肯定調用了子類的構造方法,但是在子類構造方法中我們并沒有顯示的調用基類的構造方法,就是沒寫,如:super(); 并沒有這樣寫,但是 **第二個規則:如果子類的構造方法中沒有顯示的調用基類構造方法,則系統默認調用基類無參數的構造方法** 注意:如果子類的構造方法中既沒有顯示的調用基類構造方法,而基類中又沒有默認無參的構造方法,則編譯出錯,所以,通常我們需要顯示的:super(參數列表),來調用父類有參數的構造函數
                  <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>

                              哎呀哎呀视频在线观看