Ajouter une méthode à une classe existante, sans héritage
Bonjour à tous,
Je pense avoir compris comment créer une sous-classe qui hérite (avec "extends") des méthode de sa classe-mère, mais je ne comprends pas comment enrichir une classe existante, sans modifier celle-ci, et sans créer de sous-classe.
Exemple, j'aimerais disposer d'une méthode qui me dit si une chaîne est un anagramme, je voudrais donc compléter la classe String par:
Code:
1 2 3
| public boolean isAnagram () {
// ...
} |
de façon à pouvoir utiliser
Code:
1 2 3 4
| String s1 = new String("kayak");
if (s1.isAnagram()) {
// ...
} |
Apparemment, si je crée un fichier String.java pour y déclarer cette méthode, plus aucune autre méthode de la classe n'est reconnue.
Comment faire ?
Merci d'avance,
G.
Surcharge ou ajout de méthode à la création de l'instance
La discussion est terminée depuis longtemps mais je me permets un petit ajout pour les suivants.
Il me semble qu'il est possible de surcharger ou d'ajouter une méthode à une classe, mais seulement à la création de l'objet. Les modifications de la classe n'atteignent donc que l'instance créée.
Code:
1 2 3 4 5 6 7 8 9
|
String string = new String(){
public boolean isAnagram(){
boolean answer;
// Your code...
//
return answer;
}
}; |
Ce procédé est plus courant pour les Listener lorsqu'on veut modifié la réaction d'une instance à un clique de souris ou autre.