Java 不需要父构造函数的子类

Java 不需要父构造函数的子类,java,constructor,abstract-class,extends,Java,Constructor,Abstract Class,Extends,我在Eclipse中编程,发现了一些奇怪的东西 如果我创建这样的类: public abstract class Test { public Test(Object obj) {} } 显然,任何子类都需要填写super() 这同样适用于: public abstract class Test { public Test(Object[] obj) {} } 那么,为什么我的IDE在执行以下操作时不抱怨,而不提供super() 在您说“只运行程序,它会失败”之前,我使用了JU

我在Eclipse中编程,发现了一些奇怪的东西

如果我创建这样的类:

public abstract class Test {
    public Test(Object obj) {}
}
显然,任何子类都需要填写
super()

这同样适用于:

public abstract class Test {
    public Test(Object[] obj) {}
}
那么,为什么我的IDE在执行以下操作时不抱怨,而不提供
super()

在您说“只运行程序,它会失败”之前,我使用了JUnit,程序运行良好,没有在扩展类中提供构造函数。我的问题是,为什么会发生这种情况

子类如下所示:

public class Child extends Test {
    // Should throw error.
}

使用此方法
公共测试(Object…obj)
可以输入0个或多个参数。默认情况下,如果构造函数没有显式调用父构造函数,则将隐式调用
super()。您不必显式调用它,因为语法
对象。。。obj
用于一般情况,无论您是否传入参数。如果要强制用户传入参数,则只需将参数声明为
列表

使用此方法
公共测试(Object…obj)
可以输入0个或多个参数,默认情况下,如果参数为0的构造函数将隐式调用
super()
。这样你就不用打电话了it@TuyenNguyen啊!太棒了。你知道是否存在一个注释来强制多个注释吗?我认为它没有。因为语法
对象。。。obj
用于一般情况,因此您可以传递参数或不传递参数,但您要强制它必须传递参数,然后您只需要使用
列表
instead@TuyenNguyen好吧非常感谢。你应该考虑把这个作为答案,这样我就可以接受了!要强制调用方提供至少一个参数:
publictest(objectrequiredparam,Object…optionalparms)
回答得很好。我希望你不介意我的编辑。我试图保留你的意思,但使语言更符合“murican”。谢谢@MadPhysicast,我的打字错误很糟糕,需要改进!
public class Child extends Test {
    // Should throw error.
}