何时调用this()以及何时在java中调用super()?

时间:2014-02-25 15:55:03

标签: java

任何人都可以告诉我在java构造函数中调用super()和this()之间的区别是什么?

7 个答案:

答案 0 :(得分:2)

super()表示超类(parent),this()表示当前类。

答案 1 :(得分:2)

this()为同一个类调用另一个构造函数。在这种情况下,0参数为。

super()调用超类的构造函数。

答案 2 :(得分:2)

super()从超类调用无参数构造函数,this()从当前类调用no-arg构造函数。

答案 3 :(得分:1)

super()调用类的父构造函数,this()调用类中定义的构造函数。

//Example of super()
class parent
{
  parent()
  {

  }
}
class child()
{
   child()
   {
      super();   //Go to parent class constructor
   }
}


//Example of this    
class test
{
    test()
    {
       this("a");  //go to test one argument constructor within the test class
    }
    test(String a)
    {

    }

}

答案 4 :(得分:1)

super()指的是基类/父类。可以在构造函数中用于调用父构造函数,但必须在构造函数的声明中完成。

答案 5 :(得分:1)

这意味着您将对象构造的一部分委托给另一个构造函数,super()是在超类中定义的构造函数,this()是在同一个类中定义的构造函数。

答案 6 :(得分:0)

super()用于调用超类'构造函数。 this()指的是当前的类。

以下是很好的SO链接。

this and super in java

Difference between "this" and"super" keywords in Java