zoukankan      html  css  js  c++  java
  • 子类继承父类的时候构造器和非静态自由块的调用顺序

    子类继承父类的时候构造器和非静态自由块的调用顺序
    new 一个子类的时候的访问顺序:



    class Creature {
        {
            System .out. println("creature 的非静态初始化 ");
        }

        public Creature () {
             super();
            System .out. println("creature 的构造方法 ");
        }

    }

    class Animal extends Creature {
        {
            System .out. println("animal 的非静态初始化 ");
        }

        public Animal () {
             super();
            System .out. println("animal 的构造方法 ");
        }

    }

    public class Monkey extends Animal {
        {
            System .out. println("monkey 的非静态初始化 ");
        }

        public Monkey () {
             super();
            System .out. println("monkey 的构造方法 ");
        }

        public static void main (String[] args) {
             new Monkey();
        }

    }

    输出结果:



    非静态初始化块的执行总是先于构造器执行的



    super(Para p1,Para p2......); 根据参数调用父类对应的构造方法

    this(Para p1,Para p2......);  根据参数调用本类对应的构造方法

    对于一个无参的构造器,会有一个默认的super(),她会调用父类的无参的构造方法





















  • 相关阅读:
    在Unix上使用管道压缩exp导出文件
    自制CPU的黑暗历程一
    Error C1189: #error: Please use the /MD switch for _AFXDLL builds
    Redis乐观锁解决高并发抢红包的问题
    PHP分页类
    汇编基础——使用nasm和bochs学习汇编
    数据同步工具DBsync
    完成端口的一些教程
    sdf
    (转)C#(WIN FORM)两个窗体间LISTVIEW值的修改
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531702.html
Copyright © 2011-2022 走看看