实际上我无法理解无参数构造函数和默认构造函数之间有什么区别。
import javax.swing.*;
public class Test extends JFrame {
public Test() {
super();
this.setSize(200,200);
this.setVisible(true);
}
public static void main(Sting[] arg) {
Test cFrame = new Test();
}
}
在创建名为 cFrame 的测试对象时,这是否会调用此类的默认构造函数?
The default
构造函数是 Java 编译器代表您插入的无参数构造函数;它包含一个default
拨电至super();
(not supper()
) 这是默认行为。如果您实现任何构造函数,那么您将不再收到默认构造函数。
JLS-8.8.9。默认构造函数 http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.8.9说(部分),
如果一个类不包含构造函数声明,则隐式声明一个没有形式参数且没有 throws 子句的默认构造函数。
如果声明的类是原始类 Object,则默认构造函数的主体为空。否则,默认构造函数将简单地调用不带参数的超类构造函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)