JAVA中super()作用:调用父类构造方法和构造方法链
2016-04-26 16:01
399 查看
JAVA中super()作用:调用父类构造方法和构造方法链
写给自己看的笔记。写在纸上我会弄丢。
有什么错误欢迎大家提出。
public class Test extends B { public static void main(String[] arg) { new Test(2);// 生成一个类Test的匿名对象,调用构造函数Test(int n) } public Test(int n) {// 会默认在这个方法的第一行执行super(),即调用父类的无参数构造方法B() System.out.println("Test的有参数构造函数,参数是" + n); } } class B extends C { public B() {// 会默认在这个方法的第一行执行super(),即调用父类的无参数构造方法C() super(3);// 指定了父类构造函数super(int c),则不会再使用无参数构造函数super() System.out.println("B的无参数构造函数"); } } class C { C() {// 构造函数一般是public,public可写可不写 System.out.println("C的无参数构造函数"); } public C(int c) { System.out.println("这是有参数的构造函数,参数是" + c); } }
执行new Test(2)时,调用了B(),B()又调用了用super指定的构造方法C(int c),构成了一条构造方法链。
输出顺序:
这是有参数的构造函数,参数是3
B的无参数构造函数
Test的有参数构造函数,参数是2
ps:如果定义一个类的时候不写构造函数,会隐式生成一个的无参数构造函数,子类的构造方法中依旧会调用这个隐式构造函数
参考:《JAVA语言程序设计-基础篇》原书第8版
相关文章推荐
- 通过java反射机制获取该类的所有属性类型、值、
- Java学习eclipse生成jar包
- 通过距离感应器获取实际距离[FAQ04538][Sensor]java层获得P_sensor距离传感器当前真实值,不止0,1
- Java核心技术II读书笔记(二)
- File java的文件重命名
- JAVA使用JDBC批量插入SQL
- 图的邻接矩阵存储---JAVA实现
- java集合框架12——HashMap和HashTable的区别
- struts2的Action(四)
- Java源码之String
- [org.jeecgframework.core.common.exception.MyExceptionHandler]org.springframework.
- LeetCode之位操作题java
- (2.1.25)关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
- lambda表达式
- 设计模式之六大原则——依赖倒置原则(DIP)
- Win7 64位系统下DirectX SDK安装S1023错误解决
- Java Thread 总结
- JPA规范:Java Persistence API 标准规范用法示例
- Java垃圾回收机制
- 使用IBM heapAnalyzer分析内存泄露的原因