请教:为什么在构造方法中不能一起使用this()和super这样,感谢

解决方案 »

  1.   

    今天刚看完教程,告诉你,不知说得对不对
    因为this函数是调用当前类的函数,而super是调用父类的函数,倘若两个构造函数一样,调用完this函数后,调用当前类的函数,在被调用的函数中已有super函数了,所以那个另外的super函数没有什莫意义,只能这样说了
      

  2.   

    this()或super()都必须写在构造函数的第一行,你怎么用两个
      

  3.   

    this()或super()都必须写在构造函数的第一行,你怎么用两个
    是这样的道理。
      

  4.   

    package myTest;public class Test12
    { /**
     * @param args
     */
    public static void main(String[] args)
    {
    T t1=new T(5);
    T t2=new T(6);
    System.out.println("t1.t="+t1.t);
    System.out.println("t2.t="+t2.t);
    System.out.println();

    SubT st1 = new SubT(5,6);
    SubT st2=new SubT();

    System.out.println("st1.t="+st1.t);
    System.out.println("st1.st="+st1.st);
    System.out.println("st2.t="+st2.t);
    System.out.println("st2.t="+st2.st); }}class T{
    int t;
    T(int t){
      this.t=t;
    }

    T(){
    this(0);
    }
    }class SubT extends T{
    // int t;
    int st;
    SubT(int t,int st){
    super(t);
    this.st=st;
    }
    SubT(){
    this(8,9);
    }
    }
    运行结果是:
    t1.t=5
    t2.t=6st1.t=0
    st1.st=6
    st2.t=0
    st2.t=9在SubT的构造方法中super和this就都用了。
    如果在子类中注释的那句加上,
    那运行结果就是:
    t1.t=5
    t2.t=6st1.t=0
    st1.st=6
    st2.t=0
    st2.t=9这就说明了this只对当前类对象,而super是对父类对象
      

  5.   

    this出现在类的构造方法中,代表使用该构造方法所创建的对象。
    子类不能继承父类的构造方法,因此,子类如果想使用父类的构造方法必须在子类的构造方法中使用关键字super 来表示,并且super必须是子类构造方法中的头一条语句。