super()在构造函数中意味着什么?

时间:2013-05-01 15:59:05

标签: java class inheritance

代码是什么

super();

在构造函数内部做什么?

例如,这是我班级的构造函数

public abstract class Rectangle extends AbstractShape
{

private double height, width;

// Constructors...  
public Rectangle()
{
    super(); //this is how i inherit that point!
    height = -1;
    width = -1;
}

它与超类有关吗?

4 个答案:

答案 0 :(得分:3)

它调用父类的构造函数

答案 1 :(得分:3)

它转到父类并调用构造函数。

This link over at oracle should help

答案 2 :(得分:1)

调用super();显式调用超类构造函数,这里是AbstractShape的无参数构造函数。如果构造函数中不存在此调用,则Java会为您插入隐式super();

引用JLS, section 8.8.7

  

如果构造函数体不以显式构造函数开头   调用和声明的构造函数不是   原始类Object,然后构造函数体隐式开始   使用超类构造函数调用“super();”,调用   它的直接超类的构造函数,不带参数。

答案 3 :(得分:1)