首页 > 其他 > 详细

第六周动手动脑

时间:2019-10-18 10:04:31      阅读:61      评论:0      收藏:0      [点我收藏+]

技术分享图片

 实际参数列表和形式参数列表长度不同。如果自定义类内存在一个自定义构造方法,那么系统将不再提供默认的无参构造方法。所以当定义一个有参的构造方法时,应当注意需要再定义一个无参的构造方法。

技术分享图片

class Root {  static{   System.out.println("Root的静态初始化块");  }  {   System.out.println("Root的普通初始化块");  }  public Root()  {   System.out.println("Root的无参数的构造器");  } } class Mid extends Root {  static{   System.out.println("Mid的静态初始化块");  }  {   System.out.println("Mid的普通初始化块");  }  public Mid()  {   System.out.println("Mid的无参数的构造器");  }  public Mid(String msg)  {   //通过this调用同一类中重载的构造器   this();   System.out.println("Mid的带参数构造器,其参数值:" + msg);  } } class Leaf extends Mid {  static{   System.out.println("Leaf的静态初始化块");  }  {   System.out.println("Leaf的普通初始化块");  }   public Leaf()  {   //通过super调用父类中有一个字符串参数的构造器   super("Java初始化顺序演示");   System.out.println("执行Leaf的构造器");  }

}

public class TestStaticInitializeBlock {  public static void main(String[] args)  {   new Leaf();   

 } }

技术分享图片

所有的静态初始化块都优先执行,其次才是非静态的初始化块和构造函数,它们的执行顺序是:

父类的静态初始化块

子类的静态初始化块

父类的初始化块

父类的构造函数

子类的初始化块

子类的构造函数可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员。 类的这种“没有名字”的“成员”,多用于初始化类的字段。

第六周动手动脑

原文:https://www.cnblogs.com/zaixiachengxuyuan/p/11696408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!