继承中子父类构造函数的问题
来源:互联网 发布:济南龙凰seo 编辑:程序博客网 时间:2024/06/07 14:06
前提:一个子类继承一个父类,然后随着这个父类空参数构造函数的有无或者this()还有super()之间的调用,父类创建对象以及子类创建对象会出现什么情况?
分为几种情况:
1 父类没有定义构造函数,父类可以创建一个空参数的对象,因为在这种情况下java默认会给该类一个空参数的构造函数:
1.1 子类没有定义构造函数,java默认会给一个空参数的构造函数,所以创建一个空参数的对象没问题;
1.2 子类只有一个空参数的构造函数,默认第一行会有一句super(),可以编译通过,创建一个空参数的对象没问题;
1.3 子类只有有参的构造函数,没有空参的构造函数,因为已经有了构造函数,所以java不会再给一个默认的空参数构造函数,所以不能再创建一个空参数的对象;
1.4 子类既有空参也有有参的构造函数,那么创建什么对象都没问题,只要符合构造函数的参数列表。
2 父类只有一个空参数的构造函数,与没有定义构造函数的情况一样。
3 父类只有有参的构造函数,因为已经有了构造函数,所以java不会再给一个默认的空参数构造函数,又因为子类构造函数的第一行默认会有一句super(),所以会编译失败!在第一行加this()也无济于事,因为子类的空参数构造函数不能调用自己,一个函数调用自己会死循环,所以这种情况无论子类什么情况都会编译失败!
4 父类既有空参又有有参的构造函数,那么子类无论什么情况都可以通过。
注意点:每个构造函数第一行都有一句默认的super(),子类会继承父类中的内容,所以子类在初始化时,必须先到父类中去执行父类的初始化动作。才可以更方便的使用父类中的内容。然后如果改成this()就不会再调用super()了,因为this()和super()都只能放在第一行!
- 继承中子父类构造函数的问题
- 继承过程中子父类的构造函数特点
- 构造函数中子父类之间的调用问题
- 学习笔记——继承中子父类变量,函数,构造函数的特点
- java学习总结五:继承中子父类的构造函数
- 序列化中子父类构造函数问题
- 构造函数的继承问题
- 构造函数的继承问题
- 关于PHP中构造函数以及子类继承父类构造函数的相关问题
- python类继承构造函数的执行问题解析
- python类继承时构造函数的执行问题
- C++中类继承的构造函数问题
- 派生类构造函数和多重继承的二义性问题
- Java构造函数的继承问题
- 高手讲解构造函数的继承问题
- 浅谈构造函数的继承问题
- PHP构造函数的继承问题
- 钻石继承的构造函数问题
- hibernate 搭建log4j日志环境
- docker基础
- TCP异步聊天
- Linux 常用命令汇总--加了注释
- 文章标题
- 继承中子父类构造函数的问题
- TCPdump抓包命令详解
- eclipse j2ee打开出错 java was started but returned code=13
- HDU 5634 Rikka with Phi(暴力、线段树)
- 中国剩余定理
- LeetCode 82. Remove Duplicates from Sorted List II 链表 & 83
- 十大OpenGL教程
- AngularJS最佳实践
- STL--迭代器(iterator)使用详解