1 package testBlog; 2 3 class Base{ 4 public Base() { 5 System.out.println("无参构造"); 6 } 7 8 } 9 10 public class Test { 11 public static void main(String[] args) { 12 Base bs = new Base(); 13 14 } 15 }
结果会输出"无参构造"四个字.说明当实例化一个类(没有多余操作,仅仅是实例化)的时候,默认会运行类中的构造方法.
1 package testBlog; 2 3 class Base { 4 public Base() { 5 System.out.println("父类的无参构造"); 6 } 7 8 9 } 10 11 class Sub extends Base { 12 public Sub() { 13 System.out.println("子类的无参构造"); 14 } 15 16 17 18 } 19 20 public class Test { 21 public static void main(String[] args) { 22 Base bs = new Sub(); 23 24 } 25 }
此时发生了继承关系,子类是Sub,父类是Base.当实例化子类的时候我们发现:先调用了父类的无参构造方法,再调用了子类的无参构造方法.
所以此例的最终结果为:
父类的无参构造
子类的无参构造
需要注意的是:此处实例化的是子类.如果实例化的是父类对象,那么仅输出"父类的无参构造".