构造方法 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)) 则默认一定会调用父类的无参构造方法,如此,如果父类没有无参构造方法,就会无法编译。
构造方法 static 块 {}块 执行顺序的更多相关文章
- 夯实Java基础系列7:一文读懂Java 代码块和执行顺序
目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...
- Java初始化块及执行顺序
理解 初始化块又称为代码块.属于类中的第四大成员.本质上是一个方法,它也有方法体,但没有方法名,没有参数,没有返回,而且也不是通过对象或类名显式调用,而是通过隐式调用 是构造器的补充 语法 [修饰符] ...
- 夯实Java基础系列7:Java 代码块和执行顺序
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- Java 中(静态)变量、(静态)代码块的执行顺序
Java 中(静态)变量.(静态)代码块的执行顺序 非原创 本文讨论 Java 中(静态)变量.(静态)代码块的执行顺序 首先创建 3 个类 1.Foo 类 public class Foo { pu ...
- Java(静态)变量和(静态)代码块的执行顺序
本文讨论Java中(静态)变量.(静态)代码块的执行顺序 首先创建3个类: 1.Foo类,用于打印变量 public class Foo { public Foo(String word) { Sys ...
- 关于java中三种初始化块的执行顺序
许多小伙伴对于java中的三种初始化块的执行顺序一直感到头疼,接下来我们就来分析一下这三种初始化块到底是怎么运行的.有些公司也会将这个问题作为笔试题目. 下面通过一段代码来看看创建对象时这么初始化块是 ...
- java静态初始化块的执行顺序
先来观察下面的代码 package trr; class Root { static{ System.out.println("Root的静态初始化块"); } { System. ...
- java中静态初始化块的执行顺序
在java中,其应该是先于所有的方法执行. 下面是测试代码: public class Test1 { static{ System.out.println("执行静态初始化块test1.. ...
- Java 中 try、catch、finally 语句块的执行顺序
假设代码顺序书写如下:try → catch → finally → 其他代码 则: 1.正常执行顺序:try → catch → finally → 其他代码 2.try,catch和finally ...
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
结论:执行的大致顺序如下, (1) 在一个不存在继承的类中:初始化static变量,执行static初始化块-->初始化普通成员变量(如果有赋值语句),执行普通初始化块-->构造方法 (2 ...
随机推荐
- c语言数据问题
变量都有作用域,链接属性,和存储类型3个属性,这三个属性决定了变量的作用域和生存期的问题 在c语言中包含4中类型, 整形 浮点型 指针 聚合类型(数组,结构体等) ------------------ ...
- Eclipse中项目红叉但找不到错误解决方法
首先windows-show view-problems 根据地址查找错误 若提示: Description Resource Path Location TypeJava c ...
- powerdesigner反向
1.Could not initial JVM不能初始化 :要求安装32位的JDK,把path指向32的安装目录 2.Non SQL Error : Could not load class orac ...
- phpcms不能后台编辑模板
刚安装的phpcms后台无法编辑模板,实际上只需要改一个系统文件的值即可 打开phpcms项目根目录下的: caches/configs/system.php 找到第20行,代码如下: 'tpl_ed ...
- How to keep Environment Variables when Using SUDO
The trick is to add environment variables to sudoers file via sudo visudo command and add these line ...
- POJ 1065
http://poj.org/problem?id=1065 题目的大体意思就是给一些木头长l,重w,有一个机器,如果切割这些木头的话,在i后面切割的i+1根木头满足长度和重量都要大于等于前一根则不需 ...
- Java GUI学习笔记之初识AWT和Swing
Frame f = new Frame(); //获取显示器的尺寸 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize() ...
- ffmpeg-20160617-git-bin.7z ffmpeg-20160626-git-bin.7z
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- Effective C++ -----条款41:了解隐式接口和编译期多态
classes和templates都支持接口(interface)和多态(polymorphism). 对classes而言接口是显式的(explicit),以函数签名为中心.多态则是通过virtua ...
- css 命名规范
网站头部: head/header(头部) top(顶部) 导航: nanv 导航具体区分:topnav(顶部导航).mainnav(主导航).mininav(迷你导航).textna ...