Java: Ajouter des champs et des méthodes à la classe existante?
Est là, en Java, une façon d'ajouter des champs et des méthodes à une classe existante?
Ce que je veux, c'est que j'ai une classe importées de mon code, et j'ai besoin d'ajouter des champs, des dérivés de la les champs existants, et à leur retour des méthodes.
Est-il possible de faire cela?
source d'informationauteur user1880174 | 2012-12-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer une classe qui étend celui que vous souhaitez ajouter de la fonctionnalité:
D'accéder à des variables privées dans la super-classe, si il n'y a pas des méthodes de lecture, vous pouvez les modifier à partir de "privé" à "protégés" et être capable de les référencer normalement.
Espère que ça aide!
Vous pouvez étendre des classes en Java. Par Exemple:
Maintenant instances de
B
pouvez accéder aux champs publics deA
:Pour plus de tutoriel détaillé de prendre un coup d'oeil à L'héritage (La Java des Tutoriels > Apprentissage du Langage Java > Interfaces et de l'Héritage).
Edit: Si la classe
A
a un constructeur comme:puis dans la classe
B
vous avez:Les exemples que vraiment s'appliquer si la classe que vous soyez à l'extension n'est pas définitive. Par exemple, vous ne pouvez pas étendre java.lang.Chaîne à l'aide de cette méthode. Il existe cependant d'autres moyens, tels que l'utilisation de code octet d'injection à l'aide de CGLIB, ASM ou AOP.
En supposant que cette question se pose au sujet de l'équivalent de C# les méthodes d'extension ou JavaScript, des prototypes puis techniquement c'est possible car il y a une chose que Groovy fait beaucoup de choses. Groovy compile Java et peut s'étendre à toute la classe Java, même finale. Groovy a métaclasse pour ajouter des propriétés et des méthodes (prototypes) tels que:
Je pourrais expliquer comment le faire de la même manière que Groovy, mais ce serait peut-être trop pour l'affiche. S'ils le veulent, je peux de la recherche et de l'expliquer.