同时调用this和suoper(带参数的)的构造函数的问题。具体实例,请看下面的代码,在红色的部分。
编译时会发现错误,“this语言必须位于第一列。”
但当还下this和super的顺序后,编译时也会发现错误,“super语言必须位于第一列。”
这时候该怎么解决这个问题啊?望高手留意。
class SuperClass {
public int x;
public SuperClass(){
x = 23;
}
public SuperClass(int x) {
this.x = x;
}
}class SubClass extends SuperClass {
public int y;
public SubClass() {
// super(46);
//super();
y = 12;
}
public SubClass(int y) {
super(46);
this.y = y;
}
public SubClass(int x,int y) {
super(x);
this(y);
}
}public class TestSuper {
public static void main(String[] args) {
SubClass ss = new SubClass();
SubClass ss2 = new SubClass(1,2);
System.out.println(ss2.x + " " + ss2.y);
}
}
编译时会发现错误,“this语言必须位于第一列。”
但当还下this和super的顺序后,编译时也会发现错误,“super语言必须位于第一列。”
这时候该怎么解决这个问题啊?望高手留意。
class SuperClass {
public int x;
public SuperClass(){
x = 23;
}
public SuperClass(int x) {
this.x = x;
}
}class SubClass extends SuperClass {
public int y;
public SubClass() {
// super(46);
//super();
y = 12;
}
public SubClass(int y) {
super(46);
this.y = y;
}
public SubClass(int x,int y) {
super(x);
this(y);
}
}public class TestSuper {
public static void main(String[] args) {
SubClass ss = new SubClass();
SubClass ss2 = new SubClass(1,2);
System.out.println(ss2.x + " " + ss2.y);
}
}
楼主【fengyuleidian3】截止到2008-06-28 23:08:19的历史汇总数据(不包括此帖):
发帖数:3 发帖分:60
结贴数:1 结贴分:20
未结数:2 未结分:40
结贴率:33.33 % 结分率:33.33 %
楼主该结一些帖子了
this(y);
只能出现一个。
public SubClass(int y) {
super(46);
this.y = y;
} public SubClass(int x,int y) {
super(x);
this(y);
}
}
你执行了super(x);又执行super(46);前面的super(x);不就当没执行了吗
所以一般如果又要this,又要super的时候,就把super放在用this调用的构造函数里
super();调父类构造而且两个必须在第一句
解决方法
this(参数);先调一个自己的有参构造
然后在那个有参构造中super();
实际中,完全可以4楼的方法“所以一般如果又要this,又要super的时候,就把super放在用this调用的构造函数里”来解决。
那this和super根本没有意义在一起使用。
在编写时,遇到了这个问题,于是就问问大家。
不过,收获还是满大的。
再次谢谢各位了。
楼主【fengyuleidian3】截止到2008-06-28 23:08:19的历史汇总数据(不包括此帖):
发帖数:3 发帖分:60
结贴数:1 结贴分:20
未结数:2 未结分:40
结贴率:33.33 % 结分率:33.33 %
楼主该结一些帖子了...............