zoukankan      html  css  js  c++  java
  • 第六周动手动脑

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

    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();   

     } }

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

    父类的静态初始化块

    子类的静态初始化块

    父类的初始化块

    父类的构造函数

    子类的初始化块

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

  • 相关阅读:
    阿里数据中台底座的12年建设实践
    淘宝小部件:全新的开放卡片技术!
    判断QQ是否在线
    Linux消息队列应用
    轻松学习Linux之如何创建可执行脚本
    JAVA多线程学习笔记
    轻松学习Linux之Shell文件和目录属性详解
    Firefox必备的24款web开发插件
    数论+图论+map——cf1323E
    【codevs1116】四色问题
  • 原文地址:https://www.cnblogs.com/zaixiachengxuyuan/p/11696408.html
Copyright © 2011-2022 走看看