zoukankan      html  css  js  c++  java
  • java类的实例化顺序

    • 1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
    • 2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
    • 3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
    • 4. 父类构造方法
    • 5. 子类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
    • 6. 子类构造方法

     总结:父类静态成员和静态代码块->子类静态成员和静态代码块->父类非静态成员和非静态代码块->父类构造方法->子类非静态成员和非静态代码块->子类构造方法

    父类:

     1 public class A {
     2 
     3     public static String a=printStr("父类的静态变量");
     4     public String s = printStr("父类的非静态变量");
     5     static {
     6         printStr("父类的静态块");
     7     }
     8     {
     9         printStr("父类的非静态块");
    10     }
    11     public A(){
    12         printStr("父类构造方法");
    13     }
    14 
    15 
    16     public static String printStr(String str){
    17         System.out.println(str);
    18         return str;
    19     }
    20 }

    子类:

     1 public class B extends A {
     2 
     3     public static String b=printStr("子类的静态变量");
     4     public String st = printStr("子类的非静态变量");
     5    
     6     static {
     7         printStr("子类的静态块");
     8     }
     9     {
    10         printStr("子类的非静态块");
    11     }
    12     public B(){
    13         printStr("子类的构造方法");
    14     }
    15 
    16     //main
    17     public static void main(String[] args) {
    18         new B();
    19     }
    20 }

    运行结果:

    父类的静态变量
    父类的静态块
    子类的静态变量
    子类的静态块
    父类的非静态变量
    父类的非静态块
    父类构造方法
    子类的非静态变量
    子类的非静态块
    子类的构造方法

  • 相关阅读:
    SVN中trunk、branches、tag的使用
    svn建立分支和svn代码合并的操作方法
    SVN分支的合并和同步
    iOS开发--即时通讯
    iOS 开发--开源图片处理圆角
    ios开发--网易滚动导航栏
    ios开发--高德地图SDK使用简介
    大型网站架构演变和知识体系
    Nginx配置文件nginx.conf中文详解
    nginx+apache+php+mysql服务器集群搭建
  • 原文地址:https://www.cnblogs.com/linliquan/p/11254138.html
Copyright © 2011-2022 走看看