版权声明:卢楷方的个人分享 https://blog.csdn.net/IT_lukaifang/article/details/82694196
在java程序中, 在子类继承父类时, 执行顺序是怎样的呢?
代码实现:
/**
* super 子类通过super调用父类的成员,也可以super()调用父类构造方法 但是也是必须放在第一句
*
*/
public class TestExtends2 {
public static void main(String[] args) {
new Child();
}
}
/**
* 父类静态代码段
* 子类静态代码段
* 父类代码段
* 父类构造方法
* 子类代码段
* 子类构造方法
*
*/
class Parent{
static{
System.out.println("父类静态代码段");
}
{
System.out.println("父类代码段");
}
public Parent(){
System.out.println("====父类构造方法====");
}
}
class Child extends Parent{
private A a = new A();
private static A b = new A();
static{
System.out.println("**子类类静态代码段");
}
{
System.out.println("**子类代码段");
}
public Child(){
super();//调用父类构造方法 必须放在第一句
System.out.println("**====子类类构造方法====");
}
public void test(){
}
}
class A{
public A(){
System.out.println("****A***");
}
}
执行结果:
可见:
* 父类静态代码段
* 子类静态代码段
* 父类代码段
* 父类构造方法
* 子类代码段
* 子类构造方法