在构造函数中使用super()

时间:2013-08-12 12:06:09

标签: java

如果我们在我们的程序中只有一个类,而不扩展任何类。例如

public class Point {
    int x, y;
}

编译器创建默认构造函数并根据此http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.8.9

调用super()方法
public class Point {
    int x, y;
    public Point() { 
    super(); 
    }
}

问:据我所知super();正在调用超类的默认构造函数,但是在这种情况下我们没有超类,那么在这种情况下什么是super()调用?

7 个答案:

答案 0 :(得分:5)

所有java类都从Object

延伸

答案 1 :(得分:4)

你有超级课程。无论您是否指定它,Java中的所有类都会自动扩展java.lang.Object。

见这里:http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html

从该链接中获取一个代码段:

  

所有类至少有一个构造函数。如果一个课没有   显式声明任何,Java编译器自动提供   无参构造函数,称为默认构造函数。这个默认值   构造函数调用类父类的无参数构造函数,或者   如果类没有其他父对象,则为对象构造函数。如果父母有   没有构造函数(Object确实有一个),编译器会拒绝   程序

答案 2 :(得分:1)

默认构造函数是Object,所有Java对象都从

继承

答案 3 :(得分:0)

在java中,每个类都有一个超类。如果没有明确给出,那么它是Object

答案 4 :(得分:0)

所有Java类都从Object扩展,所以如果你没有扩展任何类,你可以通过super调用Object类的构造函数。

答案 5 :(得分:0)

Object是java中的超类型。 Super()它会调用Object类。

答案 6 :(得分:0)

Java中的每个类都隐式扩展了Object Class。所以你总是可以从任何类的构造函数中调用super()。

在Object类中,没有明确的构造函数。编译器创建一个默认值, Object类的默认构造函数创建对象