同时调用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);
}
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【fengyuleidian3】截止到2008-06-28 23:08:19的历史汇总数据(不包括此帖):
    发帖数:3                  发帖分:60                 
    结贴数:1                  结贴分:20                 
    未结数:2                  未结分:40                 
    结贴率:33.33 %            结分率:33.33 %            
    楼主该结一些帖子了
      

  2.   

    super(x);
    this(y); 
    只能出现一个。
      

  3.   


    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调用的构造函数里
      

  4.   

    this(),super()是不能同时出现的,如果必须同时使用,只能把super()放入this()的构造函数中
      

  5.   

    this();调自己的构造
    super();调父类构造而且两个必须在第一句
    解决方法
    this(参数);先调一个自己的有参构造
    然后在那个有参构造中super();
      

  6.   

    谢谢各位了。
    实际中,完全可以4楼的方法“所以一般如果又要this,又要super的时候,就把super放在用this调用的构造函数里”来解决。
    那this和super根本没有意义在一起使用。
      

  7.   

    这只是一个为了熟悉this和super的而编写的一个小例子,
    在编写时,遇到了这个问题,于是就问问大家。
    不过,收获还是满大的。
    再次谢谢各位了。
      

  8.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用 
    楼主【fengyuleidian3】截止到2008-06-28 23:08:19的历史汇总数据(不包括此帖): 
    发帖数:3                  发帖分:60                
    结贴数:1                  结贴分:20                
    未结数:2                  未结分:40                
    结贴率:33.33 %            结分率:33.33 %            
    楼主该结一些帖子了...............