zoukankan      html  css  js  c++  java
  • 【Java基础】构造方法 static 块 {}块 执行顺序

    package com.test.innerclass;
    
    public class HelloB extends HelloA {
        public HelloB() {
            System.out.println("子类无参构造方法 HelloB()");
        }
    
        public HelloB(String arg) {
            System.out.println("子类有参构造方法 HelloB(arg)");
        }
    
        {
            System.out.println("子类构造块I'm B class");
        }
    
        static {
            System.out.println("子类静态块static B");
        }
    
        public static void main(String[] args) {
            System.out.println("-----------main方法----------");
            System.out.println("-----------无参数构造一个子类的情况-----");
            new HelloB();
            System.out.println("-----------有参数构造一个子类的情况-----");
            new HelloB("arg");
        }
    }
    
    class HelloA {
        static {
            System.out.println("父类静态块 static A");
        }
        {
            System.out.println("父类构造块 I'm A class");
        }
    
        public HelloA() {
            System.out.println("父类无参构造方法HelloA()");
        }
    
        public HelloA(String arg) {
            System.out.println("父类有参构造方法HelloA(arg)");
        }
    }


    output:

    父类静态块 static A
    子类静态块static B
    -----------main方法----------
    -----------无参数构造一个子类的情况-----
    父类构造块 I'm A class
    父类无参构造方法HelloA()
    子类构造块I'm B class
    子类无参构造方法 HelloB()
    -----------有参数构造一个子类的情况-----
    父类构造块 I'm A class
    父类无参构造方法HelloA()
    子类构造块I'm B class
    子类有参构造方法 HelloB(arg)

    ----------------------------------------------------

     2016-05-04 

    如果父类定义了有参构造方法,则默认不显示而实际存在的无参构造方法将会消失。

    此时子类在构造函数里如果没有显示调用父类的构造方法(如super(name)) 则默认一定会调用父类的无参构造方法,如此,如果父类没有无参构造方法,就会无法编译。

  • 相关阅读:
    Java输出错误信息与调试信息
    Java实现两个变量的互换(不借助第3个变量)
    Java用三元运算符判断奇数和偶数
    使用webpack-dev-server设置反向代理解决前端跨域问题
    springboot解决跨域问题(Cors)
    Spring boot集成swagger2
    Redis学习汇总
    【年终总结】2017年迟来的总结
    Springboot项目maven多模块拆分
    Maven实现多环境打包
  • 原文地址:https://www.cnblogs.com/heben/p/5391964.html
Copyright © 2011-2022 走看看