我是一名在Eclipse中编程的程序员,最近发现了一些奇怪的事情...
如果我像下面这样创建一个类:
任何子类显然都需要填写
同样适用于:
那么为什么当我执行以下操作并没有提供
如果我像下面这样创建一个类:
public abstract class Test {
public Test(Object obj) {}
}
任何子类显然都需要填写
super()
。同样适用于:
public abstract class Test {
public Test(Object[] obj) {}
}
那么为什么当我执行以下操作并没有提供
super()
时,我的IDE不会报错呢?public abstract class Test {
public Test(Object... obj) {}
}
在你说“只需运行程序,它就会失败”之前,我使用了JUnit并且程序正常运行,而没有在扩展类中提供构造函数。我的问题是,为什么会发生这种情况?
子类看起来像这样:
public class Child extends Test {
// Should throw error.
}
public Test(Object... obj)
这种方法,您可以输入0个或多个参数。默认情况下,如果构造函数没有参数,则会隐式调用super()
。因此,您不必自己调用它。 - TuyenNTAObject... obj
用于一般情况,所以您可以传递参数或不传递参数,但如果您想强制传递参数,则只需使用List
即可。 - TuyenNTApublic Test(Object requiredParam, Object... optionalParams)
。 - Klitos Kyriacou