<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

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

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>

            sun認證考試:java子對象創建過程

            時間:2024-08-18 08:03:56 SUN認證 我要投稿
            • 相關推薦

            sun認證考試:java子對象創建過程

              Java 創建子類對象的過程:

            sun認證考試:java子對象創建過程

              public class F511

              {

              private int ff=100;

              protected int m=880;

              F511()

              {

              m=add(8);

              }

              int add(int i){

              return i+m;

              }

              public static void main(String args[]){

              F511 f=new F511();

              System.out.println("f="+f.m);

              S511 s=new S511();

              System.out.println("s="+s.m+" t= "+s.t);

              }

              }

              class S511 extends F511

              {

              protected int ss=111;

              S511(){

              m+=ss;

              t=add(9);

              }

              int add(int i){

              return i*ss;

              }

              }

              大家自己先分析一下運算后的結果,然后在看下面結果:

              答案是:f=888

              m=111

              通過這個例子可以很好的學習到java繼承父類,運行的先后順序和機制。

              現在我添加一下東西到程序中,方便我們分析:

              public class F511

              {

              private int ff=100;

              protected int m=880;

              protected int t=880;

              static int k=0;

              F511()

              {

              System.out.println("this is parents = "+m);

              m=add(8);

              System.out.println("this is parents m=add(8) = "+m);

              }

              int add(int i){

              System.out.println("k= "+k);

              k++;

              return i+m;

              }

              public static void main(String args[]){

              F511 f=new F511();

              System.out.println("f="+f.m);

              S511 s=new S511();

              System.out.println("s="+s.m+" t= "+s.t);

              }

              }

              class S511 extends F511

              {

              protected int ss=111;

              static int j=0;

              S511(){

              System.out.println("this in childe print parents = "+m);

              m+=ss;

              t=add(9);

              }

              int add(int i){

              System.out.println("j= "+j);

              j++;

              System.out.println("ss= "+ss);

              return i*ss;

              }

              }

              運行結果是:

              this is parents = 880

              k= 0

              this is parents m=add(8) = 888

              f=888

              this is parents = 880

              j= 0

              ss= 0

              this is parents m=add(8) = 0

              this in childe print parents = 0

              j= 1

              ss= 111

              s=111 t= 999

              輸出完成 (耗時 0 秒) - 正常終止

              從這里可以看出,子類繼承父類后。在創建子類對象時,首先初始化父類的無參構造函數F511()執行其中的方法。由于父類無參構造方法中add()方法被子類重寫了,因此父類調用子類的add()方法,這就是為什么會輸出j=0,又由于父類中沒有ss變量,所以ss默認就為0.所以父類初始化后,m=0了。然后才在初始化子類無參構造函數S511()。由于m變成了0,所m+=ss,就為111了。這就是創建子類,函數初始化的過程。

              所以,在構造器中有應避免調用可能被改寫的方法,不然上上面會出現某些意想不到的結果。

            【sun認證考試:java子對象創建過程】相關文章:

            sun java認證考試介紹10-23

            Sun java認證考試答案11-06

            Sun Java認證考試科目08-30

            sun java認證考試報考指南10-18

            SUN JAVA認證介紹08-09

            Sun認證Java開發員考試介紹10-09

            sun認證考試:Java.io的使用08-23

            Sun Java認證考試教材教輔09-13

            Sun java認證考試真題答案09-25

            sun java認證報考指南09-07

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

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

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院