版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36336003/article/details/82885876
创建顺序如下:
- 父类静态成员(包括方法和变量,按顺序初始化)
- 子类静态成员(包括方法和变量,按顺序初始化)
- 父类成员变量(包括非静态代码块)
- 父类构造方法
- 子类成员变量(包括非静态代码块)
- 子类构造方法
验证代码:
// 主类,用来创建子类对象,验证我们的结果
public class Main {
public static void main(String[] args) {
new Son();
}
}
// 书类,用于测试对象成员变量
class Book{
public Book(String user){
System.out.println(user + "成员变量");
}
}
// 子类
class Son extends Fa{
static Book book= new Book("子类静态");
static{
System.out.println("子类静态代码块");
}
Book sBook = new Book("子类");
{
System.out.println("子类非静态代码块");
}
public Son(){
System.out.println("子类构造方法");
}
}
// 父类
class Fa{
static Book book= new Book("父类静态");
static{
System.out.println("父类静态代码块");
}
Book fBook = new Book("父类");
{
System.out.println("父类非静态代码块");
}
public Fa(){
System.out.println("父类构造方法");
}
}
输出结果:
父类静态成员变量
父类静态代码块
子类静态成员变量
子类静态代码块
父类成员变量
父类非静态代码块
父类构造方法
子类成员变量
子类非静态代码块
子类构造方法