静态代码块,普通代码块,构造函数先后顺序

时间:2023-01-05 19:34:00
/*对于父类中的构造函数,普通代码块,静态代码块中的先后顺序
顺序是静态代码块,普通代码块,构造函数。对于子类继承父类,且子类
中也有自己的静态代码块,普通代码块,构造函数。当我们实例化一个对象时
首先输出的是父类静态代码块,子类静态代码块,父类普通代码块,父类构造函数
子类普通代码块,子类构造函数。
*/
简单举例:
  class HelloA{

public HelloA(){
System.out.println("HelloA");
}

//普通代码块
{
System.out.println("I am a  class");
}
//静态代码块
static{
System.out.println("static A");
}
}

public class HelloB extends HelloA{
public HelloB(){
System.out.println("helloB");
}

{
System.out.println("I am a  class");
}
static{
System.out.println("static B");
}

public static void main(String[] args){
new HelloB();
}
}
/*
    输出结果:static A
          static B
  I am a class
  HelloA
  I am a Class
  HelloB
*/

3 个解决方案

#1


静态代码块,普通代码块,构造函数先后顺序

#2


i am a class
A类和B类中输出这句话时,有区别才能看出效果。

#3


嗯,说的有道理,不过,这样也可以看出来吧 静态代码块,普通代码块,构造函数先后顺序

#1


静态代码块,普通代码块,构造函数先后顺序

#2


i am a class
A类和B类中输出这句话时,有区别才能看出效果。

#3


嗯,说的有道理,不过,这样也可以看出来吧 静态代码块,普通代码块,构造函数先后顺序