代码:

父类:

public class Father {
  public Father() {
    System.out.println("基类构造函数{");
    show();
    new a();
    System.out.println("}");
  }
  public void show() {
    System.out.println("基类----show");
  }
  public class a {
    public a() {
      System.out.println("inner class 构造函数");
    }
  }
}

子类:

public class Child extends Father{
  public static void main(String[] arf){
    new Father().show();
    System.out.println("--------------------我是分割线-------------------------");
    new Child().show();
    System.out.println("--------------------我是分割线-------------------------");
    new Father().show();
  }
  public Child(){
    System.out.println("子类构造函数");
  }
  public void show(){
    System.out.println("extend基类-----show");
  }
}

运行结果:

--------------------我是分割线-------------------------
基类构造函数{
基类----show
inner class 构造函数
}
基类----show
--------------------我是分割线-------------------------
基类构造函数{
extend基类-----show
inner class 构造函数
}
子类构造函数
extend基类-----show
--------------------我是分割线-------------------------
基类构造函数{
基类----show
inner class 构造函数
}
基类----show
--------------------我是分割线-------------------------

     从运行结果上可以看出来运行的顺序。

     特别,运行结果中间部分构造函数中,调用的show()是子类的重写的方法,即子类的方法。

posted on 2015-08-04 11:18  程序员丁先生  阅读(416)  评论(0编辑  收藏  举报