2016-10-05 5 views
0

je dois obtenir un champ d'un objet instancié dans une superclasse. Le problème est que je dois obtenir à partir d'une sous-classe deux niveaux de profondeur de la superclasse, qui est, je suis dans la classe SingleChart qui s'étend SingleTable, qui s'étend TemplateReport classe. TemplateReport instancie l'objet private Report. Report a des getters et des setters publics. Je veux récupérer le champ height de Report. Est-il possible de le faire directement à partir SingleChart à TemplateReport?Comment obtenir le champ d'un objet, instancié dans la superclasse, d'une sous-classe d'une sous-classe

Répondre

1

variables d'instance privées sont héritées par les sous-classes.

Donc, si TemplateReport fait un objet rapport, et le rapport a accesseurs. Vous pouvez obtenir l'objet Report depuis n'importe quelle sous-classe en appelant le getter et en demandant la valeur dont vous avez besoin.

+0

Je viens de le faire: 'this.report.getHeight();' – losaliens

0

TemplateReport aurait besoin d'une méthode getReport publique() afin que vous puissiez accéder à l'instance de rapport de la sous-classe. Si vous ne souhaitez pas autoriser l'accès à cette instance vous pourriez avoir des méthodes spécifiques qui permettent d'accéder:

public int getReportHeight() { 

return report.height; 
}