子类对象的实例化

来源:互联网 发布:b2b发布信息软件 编辑:程序博客网 时间:2024/05/29 10:49

子类对象的实例化


1.子类对象实例化之前,必须先调用父类中的构造方法,之后调用子类的构造方法。


父类和子类的构造顺序如下:

父类的静态代码块
子类的静态代码块
父类的成员
父类的非静态代码块
父类的构造方法
子类的成员
子类的非静态代码块
子类的构造方法

  其中,静态代码块优先加载,成员和非静态代码块按照代码顺序加载,最后加载构造函数。

示例代码:

public class ExtendsDemo03 {    static class A{        public A(String string) {            System.out.println(string);        }    }    static class Father{        {            System.out.println("父类的非静态代码块");        }        private int age;        private String name;        public A a=new A("父类的成员");        public Father(){            System.out.println("父类的构造方法");        }        static {            System.out.println("父类的静态代码块");        }    }    static class Son extends Father{        public A a=new A("子类的成员");        public Son(){            System.out.println("子类的构造方法");        }        static {            System.out.println("子类的静态代码块");        }        {            System.out.println("子类的非静态代码块");        }    }    public static void main(String [] args){        Son son=new Son();    }}

输出:

父类的静态代码块
子类的静态代码块
父类的非静态代码块
父类的成员
父类的构造方法
子类的成员
子类的非静态代码块
子类的构造方法