【问题标题】:Super & Sub Class in Java [duplicate]Java中的超类和子类[重复]
【发布时间】:2017-10-16 12:59:18
【问题描述】:

如果我们有超类的参数化构造函数,为什么我们在子类中调用超类构造函数是什么原因我们必须调用超类构造函数以其他方式在扩展子类时会出错?

第一张图片是正确的形式,没有错误。

第二张图片的格式不正确,有错误。

【问题讨论】:

  • 不要使用图片来传达文字信息。在问题本身中写下详细信息。
  • 我觉得一本关于java初学者的书会对你有所帮助
  • 如果你没有显式调用 super(...) 那么 no-args super() 将作为子类构造函数中的第一条语句自动调用。但是,由于您没有为超类指定无参数构造函数,因此无法调用此类构造函数。另请注意,如果没有定义其他构造函数,则只会在您的超类中自动创建无参数构造函数。

标签: java


【解决方案1】:

作为子类实例的对象由超类部分(超类的所有成员变量和方法)和子类部分(子类的成员变量和方法)的“顶部”组成。

当你创建子类的实例时,对象的超类部分首先被初始化。如果超类有一个需要参数的构造函数,那么子类构造函数必须将这些参数传递给超类构造函数。您可以通过在子类构造函数中使用适当的参数调用 super(...) 来做到这一点。

请参阅本教程:Oracle Java Tutorials - Using the Keyword super

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多