JAVA中super和this调用构造函数
来源:互联网 发布:美团数据分析专员 编辑:程序博客网 时间:2024/05/22 01:53
this 和super在构造函数中只能有一个,且都必须是构造函数当中的第一行。
super关键字,子类可以通过它调用父类的构造函数。
1、当父类的构造函数是无参构造函数时,在子类的构造函数中,就算不写super()去调用父类的构造函数,编译器不会报错,因为编译器会默认的去调用父类的无参构造函数。
class hood {public hood(){System.out.println("1");}}class hood2 extends hood{public hood2(){System.out.println("2");}}public class TEST {public static void main(String[] args){hood2 t = new hood2();}}
这段代码的运行结果是:1 2
2、当父类的构造函数是有参构造函数时,此时如果子类的构造函数中不写super()进行调用父类的构造函数,编译器会报错,此时不能省去super()
class hood {public hood(int i){System.out.println("1"+i);}}class hood2 extends hood{public hood2(){ super(5);System.out.println("2");}}public class TEST {public static void main(String[] args){hood2 t = new hood2();}}
再来是this关键字,可以理解为它可以调用自己的其他构造函数,看如下代码:
class Father { int age; // 年龄 int hight; // 身体高度 public Father() { print(); this.age=20; //这里初始化 age 的值 } public Father(int age) { this(); // 调用自己的第一个构造函数,下面的两个语句不执行的 this.age = age; print(); } public Father(int age, int hight) { this(age); // 调用自己第二个构造函数 ,下面的两个语句不执行的 this.hight = hight; print(); } public void print() { System.out.println("I'am a " + age + "岁 " + hight + "尺高 tiger!"); } public static void main(String[] args) { new Father(22,7); } }
这段代码的运行结果是:
I'am a 0岁 0尺高 tiger!
I'am a 022岁 0尺高 tiger!
I'am a 22岁 7尺高 tiger!
0 0
- JAVA中super和this调用构造函数
- JAVA学习,this(),super()调用构造函数研究
- 构造函数的this和super的调用
- 子父类构造函数的调用演示,区分this()和super()
- 使用Java的子类调用构造方法super()和this()
- java中this()和super()在子类构造函数中不能共存的原因
- Java - 构造函数、this 和 super的使用
- Java中this调用重载构造函数
- 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释
- 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释
- 构造函数,super,this
- super() this() super this 与构造函数
- java中this和super
- java中super和this
- java中super和this
- Java中this和super
- java中super和this函数的区别
- this super 构造函数 以及 加载及调用顺序
- Flatten Binary Tree to Linked List
- Autolayout 基础
- UVa 208:Firetruck(DFS)
- SQL杂集
- C和C++键盘输入函数总结
- JAVA中super和this调用构造函数
- Dom4j初步使用
- Webservice soap wsdl区别之个人见解
- [Android UI开发] Android进行异步更新UI的四种方式
- LeetCode Find Peak Element
- HTTP协议是无状态协议无链接,怎么理解?
- webim如何使用http长轮询保证消息的绝对实时性
- 黑马程序员-----Java基础-----File,Properties和其他IO处理流
- iOS中Bitcode的介绍及配置