java基础技术知识点总结——初始化

来源:互联网 发布:饥荒mac汉化补丁 编辑:程序博客网 时间:2024/05/16 16:15
public class Test {    public static void main(String[] args) {        new Student();    }}class Person {    static {        System.out.println("Person的静态代码块");    }    {        System.out.println("Person的普通代码块");    }    public Person(){        System.out.println("Person的构造器");    }}class Student extends Person{    static {        System.out.println("Student的静态代码块");    }    {        System.out.println("Student的普通代码块");    }    public Student(){        System.out.println("Student的构造器");    }}输出结果:Person的静态代码块Student的静态代码块Person的普通代码块Person的构造器Student的普通代码块Student的构造器可以观察到,初始化顺序为父类静态代码块>子类静态代码块>父类普通代码块>父类普通代码块>子类普通代码块>子类普通代码块,值得一提的是,如果子类没有使用super();来调用父类构造器,那么默认初始化为父类的无参构造器。class Person {    public Person(String name){//带有一个参数的构造器    }}class Student extends Person{    public Student(){//子类此时这么编写会报错,因为此时父类没有默认的无参构造器,而子类就无法拥有无参构造器。    }}
0 0
原创粉丝点击