2016-10-05 19 views
0

スーパークラスでインスタンス化されたオブジェクトのフィールドを取得する必要があります。問題は、スーパークラスから2レベル下のサブクラスから取得する必要があることです。すなわち、私はクラスSingleChartにあり、SingleTableを継承しています。それ自体はTemplateReportクラスです。 TemplateReportprivate Reportオブジェクトをインスタンス化します。 Reportにはパブリックゲッターとセッターがあります。 Reportheightフィールドを取得したいとします。 SingleChartからTemplateReportに直接アクセスする方法はありますか?スーパークラスでインスタンス化されたオブジェクトのフィールドをサブクラスのサブクラスから取得する方法

答えて

1

プライベートインスタンス変数はサブクラスによって継承されます。

したがって、TemplateReportがReportオブジェクトを作成し、Reportにgetterとsetterがある場合。 getterを呼び出し、必要な値を要求することによって、任意のサブクラスからReportオブジェクトを取得できます。

+0

私はちょうどこれをしなければなりません: 'this.report.getHeight();' – losaliens

0

TemplateReportには、サブクラスからレポートインスタンスにアクセスできるように、public getReport()メソッドが必要です。そのインスタンスへのアクセスを許可しない場合は、アクセスを許可する特定のメソッドを持つことができます。

public int getReportHeight() { 

return report.height; 
} 
関連する問題