- class Fu
- {
- Fu()//无参构造器
- {
- System.out.println("fu run");
- }
- }
- class Zi extends Fu
- {
- /*因为这个类Zi继承了Fu类,所以当new一个Zi类对象的时候,就会首先去调用父类中的默认构造方法(无参数构造器)
- * 如果父类中没有定义默认构造器的话,就需要在子类中显示调用父类中的其他有参构造器。
- * */
- Zi()
- {
- //super();此处隐藏了super方法,隐式调用父类的无参数构造器
- System.out.println("zi run");
- }
- Zi(int x)//它重载了默认的构造函数
- {
- //super();此处也隐藏了super方法,隐式调用父类的无参数构造器
- System.out.println("zi..."+x);
- }
- }
- class Z
- {
- public static void main(String[] args)
- {
- Zi z = new Zi();//会调用无参构造函数
- Zi z1 = new Zi(3);//会调用有参构造函数
- }
- }
复制代码
如果你还不明白的话,你可以设置断点,自己逐步调试一下,然后你就明白它的先后调用顺序了,加油 |