- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试理解继承,但有一些问题需要理解。
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
类的所有方法都可以从 Resources
、SiteTemplateMethods
和 SiteTemplate
类访问。是这样吗?
2) SiteTemplate
构造函数中的 super();
会将所有参数传递给 SiteTemplateMethods
,但在类 SiteTemplateMethods
中不需要这些参数,如何将 SiteTemplate
类的参数获取到二级父类(super class) Resource
类?
致以诚挚的问候
最佳答案
1) class
PropertyFiles
all methods will be accessible from classesResources
,SiteTemplateMethods
andSiteTemplate
. Is that right?
不,这是不对的。 PropertyFiles
的所有 public
和 protected
成员都可供后代类访问,包括 Resources
、SiteTemplateMethods
和 SiteTemplate
,但 PropertyFiles
的 private
方法将无法被子类访问。仅当子类与 Resources
位于同一包中时,子孙类才能访问包私有(private)方法。请参阅https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html .
访问已被覆盖的方法还有其他限制(正如@Gergely 首先指出的那样)。
2)
super();
in SiteTemplate constructor will pass all parameters toSiteTemplateMethods
不,不会。不带参数的 super() 调用直接父类(super class)的无参数构造函数,不向其传递任何参数。如果直接父类(super class)没有可访问的无参数构造函数,则调用无效。
要调用不同的构造函数,即作为接受参数的构造函数,您必须使用相应的参数列表调用 super()
。
but these parameters are not required here in class
SiteTemplateMethods
how can I get the parameters of theSiteTemplate
class to second level super classResource
class?
如果 SiteTemplateMethods
具有可访问的构造函数,它将参数传递给 Resource
的可访问(对其)构造函数,那么您可以在 SiteTemplate
构造函数的开头使用相应的 super()
调用(带参数)。否则,SiteTemplate
的构造函数将需要以适合类 Resource
的方式直接应用参数,例如通过调用属性 setter 方法。
关于java - 如何将参数传递给二级父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41510873/
我是一名优秀的程序员,十分优秀!