私は継承を理解し、理解するためにいくつかの問題があると考えています。第2レベルのスーパークラスにパラメータを渡すにはどうすればいいですか
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
からアクセスできるようになります。そうですか? SiteTemplate
コンストラクタで
2)はSiteTemplateMethods
にすべてのパラメータを渡しますが、これらのパラメータは、私は2番目のレベルのスーパークラスResource
クラスにSiteTemplate
クラスのパラメータを取得することができますどのようにクラスSiteTemplateMethods
ここで必要とされていませんか?
敬具
1.はい(プライベートメソッドを除く)。 2.あなたは 'SiteTemplateMethods'のコンストラクタを通してそれらを渡す必要があります。サブクラスで実装する抽象プロバイダメソッドを持つ 'Resources'のような他のオプションがありますが、それは' SiteTemplateMethods'抽象化を必要とするか、またはそれらのメソッドを実装する必要があります。 –
これは、まず、 'Resource'クラスと同じコンストラクタをパラメータで作成してから、super()キーワードを使用する必要があることを意味します。そうですか? – Ghayel
はい、 'super();'の代わりに 'super(country、language、request);'を呼び出すだけです。ところで、 'super();はそれ自身では冗長です。自動的に起こります。 –