java子類執行個體初始化過程

來源:互聯網
上載者:User

子類的執行個體化主要分為兩個步驟:

<1>.類相關靜態內容初始化;

*先父類再子類:

  1.父類的static屬性;

  2.父類的static塊;

  3.子類的static屬性;

  4.子類的static塊;

<2>.類的執行個體內容初始化;

*調用構造子:先父類後子類:構造子調用之前先執行個體化執行個體欄位和塊

  5.父類的普通屬性;

  6.父類的普通塊;

  7.父類的構造子;

  8.子類的普通屬性;

  9.子類的普通塊;

  10.子類的構造子;

 

舉例:

package basic;public class ClzInit {public static void main(String[] args) {new Son();}}class Parent {protected int n = 5;protected static int m = 5;static {m = m * 2;System.out.println("父類靜態塊調用;m="+m);}{n = n * 2;m = m * 2;System.out.print("父類普通塊調用;");System.out.print("n="+n);System.out.println("m="+m);}public Parent() {this.n = n * 10;m = m + 10;System.out.print("父類構造子;n="+n);System.out.println("m="+m);}}class Son extends Parent {private int sn=3;private static int sm=3;static {m = m + 2;sm=sm+2;System.out.println("子類靜態塊調用;m="+m);}{n = n + 2;sn=sn+2;m = m + 2;System.out.println("子類普通塊調用;");System.out.print("n="+n);System.out.print("sn="+sn);System.out.println("m="+m);}public Son() {this.n = n + 10;sn=sn+10;m = m + 10;System.out.print("子類構造子;n="+n);System.out.println("m="+m);}}

 看輸出結果,可見端倪:

父類靜態塊調用;m=10子類靜態塊調用;m=12父類普通塊調用;n=10m=24父類構造子;n=100m=34子類普通塊調用;n=102sn=5m=36子類構造子;n=112m=46

 備忘。歡迎各位指正!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.