如果我们在我们的程序中只有一个类,而不扩展任何类。例如
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()调用?
答案 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类的默认构造函数创建对象。