gpt4 book ai didi

java - 如何将参数传递给二级父类(super class)

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:09 25 4
gpt4 key购买 nike

我正在尝试理解继承,但有一些问题需要理解。

public class SiteTemplate extends SiteTemplateMethods

public SiteTemplate(String country, String language, HttpServletRequest request){
super();


}

public class SiteTemplateMethods extends Resources

public class Resources extends PropertyFiles

1) PropertyFiles 类的所有方法都可以从 ResourcesSiteTemplateMethodsSiteTemplate 类访问。是这样吗?

2) SiteTemplate 构造函数中的 super(); 会将所有参数传递给 SiteTemplateMethods,但在类 SiteTemplateMethods 中不需要这些参数,如何将 SiteTemplate 类的参数获取到二级父类(super class) Resource 类?

致以诚挚的问候

最佳答案

1) class PropertyFiles all methods will be accessible from classes Resources, SiteTemplateMethods and SiteTemplate. Is that right?

不,这是不对的。 PropertyFiles 的所有 publicprotected 成员都可供后代类访问,包括 ResourcesSiteTemplateMethodsSiteTemplate,但 PropertyFilesprivate 方法将无法被子类访问。仅当子类与 Resources 位于同一包中时,子孙类才能访问包私有(private)方法。请参阅https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html .

访问已被覆盖的方法还有其他限制(正如@Gergely 首先指出的那样)。

2) super(); in SiteTemplate constructor will pass all parameters to SiteTemplateMethods

不,不会。不带参数的 super() 调用直接父类(super class)的无参数构造函数,不向其传递任何参数。如果直接父类(super class)没有可访问的无参数构造函数,则调用无效。

要调用不同的构造函数,即作为接受参数的构造函数,您必须使用相应的参数列表调用 super()

but these parameters are not required here in class SiteTemplateMethods how can I get the parameters of the SiteTemplate class to second level super class Resource class?

如果 SiteTemplateMethods 具有可访问的构造函数,它将参数传递给 Resource 的可访问(对其)构造函数,那么您可以在 SiteTemplate 构造函数的开头使用相应的 super() 调用(带参数)。否则,SiteTemplate 的构造函数将需要以适合类 Resource 的方式直接应用参数,例如通过调用属性 setter 方法。

关于java - 如何将参数传递给二级父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41510873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com