亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

SUN認(rèn)證

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

時間:2024-06-08 08:14:43 SUN認(rèn)證 我要投稿
  • 相關(guān)推薦

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

  Java 創(chuàng)建子類對象的過程:

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

  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;

  }

  }

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

  答案是:f=888

  m=111

  通過這個例子可以很好的學(xué)習(xí)到j(luò)ava繼承父類,運行的先后順序和機(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;

  }

  }

  運行結(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

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

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

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

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

Sun java認(rèn)證考試答案10-23

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

sun java認(rèn)證考試題庫09-04

sun認(rèn)證java程序員考試科目10-01

sun認(rèn)證java程序員08-05

sun認(rèn)證java基礎(chǔ)模擬試題09-16

sun認(rèn)證java程序員考試試題09-13

Sun認(rèn)證Java程序員考試技巧分享09-14

SUN認(rèn)證考試流程08-22

Sun的四大Java認(rèn)證體系10-08