美文网首页
类与继承

类与继承

作者: 木栈桥上 | 来源:发表于2018-03-30 12:01 被阅读0次

    当声明父类而用子类实例化时:

    public class Main {

          public static int i=methodi();

          public int y=methody();

          public static int methodi() {

                System.out.println("i");

                return 1;

          }

          public int methody() {

                System.out.println("y");

                return 1;

          }

          public Main() {

                System.out.println("Main构造器");

          }

          {

                System.out.println("Main普通代码块");

          }

          static {

                System.out.println("Main静态代码块");

          }

          public static void main(String[] args) {

                Main m=new x();

          }

         

    }

    class x extends Main{

          public x() {

                System.out.println("x构造器");

          }

          {

                System.out.println("x普通代码块");

          }

          static {

                System.out.println("x静态代码块");

          }

    }

    输出为:

    i

    Main静态代码块

    x静态代码块

    y

    Main普通代码块

    Main构造器

    x普通代码块

    x构造器

    当 Main m=new Main();  时。

    输出为:

    i

    Main静态代码块

    y

    Main普通代码块

    Main构造器

    当 x x=new x();  时。

    输出为:

    i

    Main静态代码块

    xi

    x静态代码块

    y

    Main普通代码块

    Main构造器

    x普通代码块

    x构造器

    总结:单个类执行顺序:静态变量的声明,静态代码块,普通变量声明,普通代码块,类构造器。

    当声明父类而用子类实例化时执行顺序:

    父类静态变量声明,父类静态代码块,子类静态变量声明,子类静态代码块,父类普通变量声明,父类普通代码块,父类构造器,子类普通变量声明,子类普通代码块,子类构造器。

    相关文章

      网友评论

          本文标题:类与继承

          本文链接:https://www.haomeiwen.com/subject/jmzbcftx.html