码迷,mamicode.com
首页 > 其他好文 > 详细

继承(构造方法的执行)

时间:2018-07-04 19:33:41      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:com   nbsp   info   rgs   alt   end   void   print   构造   

父类:

public class Demo4 {
    static{
        System.out.println("Demo4静态代码块执行了");
    }
    {
        System.out.println("Demo4构造代码块执行了");
    }
    public Demo4(){
        System.out.println("Demo4构造方法执行了");
    }
    public static void main(String[] rgs){
        new Demo5();
        new Demo4();
}
}

子类:

public class Demo5 extends Demo4 {
    String name = "王五";
    static{
        System.out.println("Demo5静态代码块执行了");
        Demo5 ps = new Demo5();
        System.out.println(ps.name);
        
    }
    {
        System.out.println("Demo5构造代码块执行了");
    }
    public Demo5(){
        System.out.println("Demo5构造方法执行了");
    }
}

运行结果:

1.加载父类静态代码块  Demo4静态代码块执行了

2.加载子类静态代码块  Demo5静态代码块执行了

3.执行Demo5 ps = new Demo5();

  a.先执行父类构造代码块  Demo4构造代码块执行了

  b.在执行父类构造方法    Demo4构造方法执行了

  c.执行子类构造代码块   Demo5构造代码块执行了

  d.执行子类构造方法  Demo5构造方法执行了

  e.输出 "王五"

4.执行父类构造代码块  Demo4构造代码块执行了

5.执行父类构造方法  Demo4构造方法执行了

6.执行子类构造代码块 Demo5构造代码块执行了

7.执行子类构造方法  Demo5构造方法执行了

8..执行父类构造代码块 Demo4构造代码块执行了

9.执行父类构造方法  Demo4构造方法执行了

 

执行构造方法时,相当于在执行子类无参构造方法时增加SUPER()即父类的无参构造方法

技术分享图片

如遇重载构造,则同理,具体如下:

技术分享图片

注:需多多练习,灵活应用!

继承(构造方法的执行)

标签:com   nbsp   info   rgs   alt   end   void   print   构造   

原文地址:https://www.cnblogs.com/lboy1205/p/9264895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!