繁体   English   中英

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

[英]In java can super() be used to call any parent method or just the parent constructor

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

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

它与this关键字非常相似,但对于父级。

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

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

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

使用超级关键字:

  1. super() - 只有super作为构造函数调用才会调用超类的默认构造函数
  2. super(参数) - 仅调用其父类的参数化构造函数。
  3. super.methodName() - 如果方法可见性是公共的或受保护的,则调用其父类链的方法。
  4. 如果子类构造函数显式或隐式地调用其超类的构造函数,您可能会认为将调用一整个构造函数链,一直返回到Object的构造函数。 事实上,情况就是这样。 它被称为构造函数链接 ,当需要很长的类下降时,您需要注意它

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM