构造代码块、静态代码块与构造方法是三种不同的代码块,那么他们到底有什么区别呢?
一、简单认识一下构造代码块、静态代码块与构造方法
class A { //构造代码块 { System.out.println("构造代码块A"); } //静态代码块 static { System.out.println("静态代码块A"); } //构造方法 public A() { System.out.println("构造方法A"); } }
二、弄清三者的执行顺序
class Demo { public static void main(String[] args) { new A(); } }
三、在构造多个对象时顺序又会是怎样呢
class Demo { public static void main(String[] args) { new A(); new A(); new A(); } }
四、看看在继承体系中又会是怎样
class B extends A { //构造代码块 { System.out.println("构造代码块B"); } //静态代码块 static { System.out.println("静态代码块B"); } //构造方法 public B() { System.out.println("构造方法B"); } }
class Demo { public static void main(String[] args) { new B(); } }