代码:
父类:
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()是子类的重写的方法,即子类的方法。