在java中,super()可以用于调用任何父方法或仅调用父构造函数

在java中,super()可以用于调用任何父方法或仅调用父构造函数,java,inheritance,constructor,super,Java,Inheritance,Constructor,Super,是否可以使用子类方法中的super()调用任何父类方法,或者super仅用于调用父构造函数对于调用方法,语法为super.methodName()。只需super()即可调用构造函数 它非常类似于这个关键字,但用于父级 this()从另一个构造函数调用此类构造函数super()从childs构造函数调用父构造函数 this.methodName()调用当前类的方法,super.methodName()调用父类的方法 编辑:正如@harry在评论中提到的,家长的方法应该对孩子可见,这样孩子才能真正

是否可以使用子类方法中的super()调用任何父类方法,或者super仅用于调用父构造函数

对于调用方法,语法为
super.methodName()
。只需
super()
即可调用构造函数

它非常类似于
这个
关键字,但用于父级

this()
从另一个构造函数调用此类构造函数
super()
从childs构造函数调用父构造函数

this.methodName()
调用当前类的方法,
super.methodName()
调用父类的方法


编辑:正如@harry在评论中提到的,家长的方法应该对孩子可见,这样孩子才能真正使用
super.methodName()
。无法访问父级中的私有方法。

超级关键字的用法:

  • super()-只有作为构造函数调用的super才会调用super类的默认构造函数
  • super(parameters)-仅调用其父类的参数化构造函数
  • super.methodName()-调用其父类链的方法,前提是方法可见性为public或protected
  • 如果子类构造函数显式或隐式调用其超类的构造函数,您可能会认为会调用整个构造函数链,一直返回到对象的构造函数。事实上,情况就是这样。它被称为构造函数链接,当有一长串类下降时,您需要注意它

  • 希望这有帮助

    范围可见性还需要考虑父方法:)我仍然没有在您的答案中看到OP实际问题的答案。“
    任何父类方法”
    “@sᴜʀᴇsʜᴀᴛᴛᴀ,
    super.methodName()
    可用于访问所有可见父类的方法。我已经编辑了答案。“this.methodName()调用当前类的方法”不一定。如果当前对象属于已重写
    methodName
    的子类,则它将调用该子类。