zoukankan      html  css  js  c++  java
  • Java父类构造器的讲解

    众所周知,对于Java中的所有类而言,它们有一个根父类,即java.lang.Object类。

    对于Java中构造器执行的顺序而言,程序执行的顺序为,先执行父类的非静态代码块,然后执行父类的相应的构造器,最后执行子类的非静态代码块,

    子类的构造器。

    此处需要说明一点:Java中的静态代码是在字节码文件在最开始加载的时候就完成的哦。

    为了更好的理解,请看下面的例子:

    class Creature
    {
    	{
    		System.out.println("Creature的非静态初始化块");
    	}
    	// 下面定义两个构造器
    	public Creature()
    	{
    		System.out.println("Creature无参数的构造器");
    	}
    	public Creature(String name)
    	{
    		// 使用this调用另一个重载的、无参数的构造器
    		this();
    		System.out.println("Creature带有nmae参数的构造器,name参数:"
    			+ name);
    	}
    }
    class Animal extends Creature
    {
    	{
    		System.out.println("Animal的非静态初始化块");
    	}
    	public Animal(String name)
    	{
    		super(name);
    		System.out.println("Animal带一个参数的构造器,name参数:" + name);
    	}
    	public Animal(String name , int age)
    	{
    		// 使用this调用另一个重载的构造器
    		this(name);
    		System.out.println("Animal带2个参数的构造器,其age:" + age);
    	}
    }
    class Wolf extends Animal
    {
    	{
    		System.out.println("Wolf的非静态初始化块");
    	}
    	public Wolf()
    	{
    		// 显式调用父类的带2个参数的构造器
    		super("灰太狼", 3);
    		System.out.println("Wolf无参数的构造器");
    	}
    	public Wolf(double weight)
    	{
    		// 使用this调用另一个重载的构造器
    		this();
    		System.out.println("Wolf的带weight参数的构造器,weight参数:"
    			+ weight);
    	}
    }
    public class InitTest
    {
    	public static void main(String[] args)
    	{
    		new Wolf(5.6);
    	}
    }
    

    运行结果为:

    Creature的非静态初始化块
    Creature无参数的构造器
    Creature带有nmae参数的构造器,name参数:灰太狼
    Animal的非静态初始化块
    Animal带一个参数的构造器,name参数:灰太狼
    Animal带2个参数的构造器,其age:3
    Wolf的非静态初始化块
    Wolf无参数的构造器
    Wolf的带weight参数的构造器,weight参数:5.6
    

      

  • 相关阅读:
    Stm32CubeMX5 配置 STM32的串口DMA接受方式 --- 基于 stm32f051k8u6
    Stm32 控制1.44寸液晶显示图片 基于stm32f051k8u6
    makefile自动编译
    Stm32CubeMX5 创建LED控制工程
    ARM 汇编与C之间 的调用
    shell 脚本文件类型.sh ,变量
    bzoj3589 动态树 求链并 容斥
    bzoj2287【POJ Challenge】消失之物 缺一01背包
    bzoj2916: [Poi1997]Monochromatic Triangles 思路
    [NOI2010]超级钢琴 主席树
  • 原文地址:https://www.cnblogs.com/xiohao/p/4349833.html
Copyright © 2011-2022 走看看