java子类实例初始化过程
生活随笔
收集整理的這篇文章主要介紹了
java子类实例初始化过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
子類的實例化主要分為兩個步驟:
<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=10 m=24 父類構造子; n=100 m=34 子類普通塊調用; n=102sn=5 m=36 子類構造子;n=112 m=46?備忘。歡迎各位指正!
轉載于:https://www.cnblogs.com/niewj/archive/2012/12/14/4041221.html
總結
以上是生活随笔為你收集整理的java子类实例初始化过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 借呗和网商贷有什么区别
- 下一篇: 智能交通概念股龙头 A股的投资者都该研究