构造方法 static 块 {}块 执行顺序
2016-04-18 16:44
148 查看
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)) 则默认一定会调用父类的无参构造方法,如此,如果父类没有无参构造方法,就会无法编译。
相关文章推荐
- Android布局之LinearLayout
- 《梦断代码》阅读笔记01
- word2vec使用说明
- Dialog从底部弹出 在底部位置
- 自定义对象的属性增加
- 被盗号了
- 公布1骗子 钱打完拍了3张照片 就给我拉黑了,打电话也不接
- MySQL权限及备份还原
- 用文本富属性的时候要用String实例化NSMutableAttributedString
- Mybatis中javaType和jdbcType对应关系
- 界面调试工具Reveal
- Caffe学习系列(8):solver优化方法
- 调用系统拍照及裁剪功能主要代码实现
- 关于内存对齐#pragma pack( n )和__declspec( align(#) 的理解
- C++类的常成员函数
- [POJ3061]Subsequence(二分,前缀和)
- Docker从根本层面改变应用程序开发
- OpenGL: Configuring GLFW and GLEW in Visual C++ Express
- 交换机系统架构和交换模式
- Maven的使用《二》之依赖、继承、聚合