java中this()和super()在子类构造函数中不能共存的原因
2014-12-14 22:16
387 查看
本人只是java初学者,第一次发文章,希望大家提出质疑道出不足,这样,我的目的就达到了。
如下所示,编译出错
class A{
int a;
A(){
this.a=1;
}
A(int a){
this.a=a;
}
}
class B extends A{
B(){
super(2);
this(1);
}
B(int a){
super();
}
public static void main(String[] args){
newB();
}
}
但如果super()和this()同时出现是合法的
那么a就被初始化两次,到底a是等于1还是等于2呢,若a是重要信息,显然是不安全的
即使程序按顺序来加载(先加载super(2)再this(1),a=1),那么super(2)岂不是多此一举。
如下所示,编译出错
class A{
int a;
A(){
this.a=1;
}
A(int a){
this.a=a;
}
}
class B extends A{
B(){
super(2);
this(1);
}
B(int a){
super();
}
public static void main(String[] args){
newB();
}
}
但如果super()和this()同时出现是合法的
那么a就被初始化两次,到底a是等于1还是等于2呢,若a是重要信息,显然是不安全的
即使程序按顺序来加载(先加载super(2)再this(1),a=1),那么super(2)岂不是多此一举。
相关文章推荐
- java面向对象-子父类中构造函数的特点-子类实例化过程super
- java子类对象在子类方法中使用父类属性 使用this和super都可以
- JAVA学习,this(),super()调用构造函数研究
- 使用Java的子类调用构造方法super()和this()
- 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释
- JavaSE8基础 构造函数 this()或super()不能同时调用
- JAVA一个类有两个构造函数,当在一个构造函数中调用另外一个构造函数时为什么要用this.()而不能用类名.()
- java中的this和super的作用和异同和C++中调用父类的构造函数
- Java继承,子类默认在构造函数中用super()调用父类构造函数
- 黑马程序员——java基础之构造函数、this、super、static
- 黑马程序员--03.面向对象--04.子类构造必须访问父类构造的原因 this_super语句的含义【个人总结】
- JAVA中super和this调用构造函数
- java中静态方法中为什么不能使用this、super和直接调用非静态方法
- 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释
- Java继承-子类默认在构造函数中用super()调用父类构造函数
- Java - 构造函数、this 和 super的使用
- java,this不能和super同时使用 并且放在第一行
- 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释
- JAVA核心技术 第五章 继承 类、超类、子类 关键字this super 多态 动态绑定
- java中的this和super(构造函数)