亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

sun認(rèn)證考試:java子對(duì)象創(chuàng)建過(guò)程

時(shí)間:2020-09-21 12:32:01 SUN認(rèn)證 我要投稿

sun認(rèn)證考試:java子對(duì)象創(chuàng)建過(guò)程

  Java 創(chuàng)建子類(lèi)對(duì)象的過(guò)程:

sun認(rèn)證考試:java子對(duì)象創(chuàng)建過(guò)程

  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;

  }

  }

  大家自己先分析一下運(yùn)算后的結(jié)果,然后在看下面結(jié)果:

  答案是:f=888

  m=111

  通過(guò)這個(gè)例子可以很好的學(xué)習(xí)到j(luò)ava繼承父類(lèi),運(yùn)行的`先后順序和機(jī)制。

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

  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;

  }

  }

  運(yùn)行結(jié)果是:

  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

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

  從這里可以看出,子類(lèi)繼承父類(lèi)后。在創(chuàng)建子類(lèi)對(duì)象時(shí),首先初始化父類(lèi)的無(wú)參構(gòu)造函數(shù)F511()執(zhí)行其中的方法。由于父類(lèi)無(wú)參構(gòu)造方法中add()方法被子類(lèi)重寫(xiě)了,因此父類(lèi)調(diào)用子類(lèi)的add()方法,這就是為什么會(huì)輸出j=0,又由于父類(lèi)中沒(méi)有ss變量,所以ss默認(rèn)就為0.所以父類(lèi)初始化后,m=0了。然后才在初始化子類(lèi)無(wú)參構(gòu)造函數(shù)S511()。由于m變成了0,所m+=ss,就為111了。這就是創(chuàng)建子類(lèi),函數(shù)初始化的過(guò)程。

  所以,在構(gòu)造器中有應(yīng)避免調(diào)用可能被改寫(xiě)的方法,不然上上面會(huì)出現(xiàn)某些意想不到的結(jié)果。

【sun認(rèn)證考試:java子對(duì)象創(chuàng)建過(guò)程】相關(guān)文章:

Sun java認(rèn)證考試答案11-12

Sun Java認(rèn)證考試科目10-03

sun java認(rèn)證考試介紹10-03

sun java認(rèn)證考試報(bào)考指南10-03

SUN JAVA認(rèn)證介紹05-13

Sun java認(rèn)證考試真題答案07-19

Sun認(rèn)證Java開(kāi)發(fā)員考試介紹10-25

Sun Java認(rèn)證考試教材教輔10-03

怎樣獲得Sun Java認(rèn)證10-01