您何时需要显式调用超类构造函数?

| 可以这么说,我有一个扩展超类的子类。在什么情况下我需要显式键入ѭ0才能使超类构造函数运行? 我正在看一本书中有关抽象类的示例,当他们使用非抽象子类对其进行扩展时,该子类的默认构造函数为空白,并且有一条评论说超类的默认构造函数将被称为。同时,我还看到了某人的问题没有明确调用“ 0”的实例。 与从子类的默认/非默认构造函数调用超类的默认/非默认构造函数有区别吗?     
已邀请:
        你永远不需要
super();
如果您不指定其他任何内容,那将是在那里。仅在以下情况下需要指定要调用的构造函数: 您要调用具有参数的超类构造函数 您想链接到同一类中的另一个构造函数,而不是超类构造函数 您声称:   同时,我还在这里看到有人的问题没有明确调用super()的实例。 你能举个例子吗?我无法想象这怎么可能...     
        如果您没有显式调用超级构造函数,则将调用参数少构造函数(super())。这意味着,如果没有超类的无参数的无构造子,则必须自己调用特定的构造函数。 但是,即使您可以使用默认构造函数,但经常还是想要一个不同的构造函数-取决于您的代码。 还要注意,如果未声明构造函数,则编译器会自动生成一个公共的默认构造函数,但是一旦您编写自己的构造函数,就不会再发生这种情况。     
        始终在子类的构造函数中调用ѭ0called方法,即使该方法未明确用代码编写。 唯一需要写的是,超类中是否有几种带有不同初始化参数的
super(...)
方法。     

要回复问题请先登录注册