OVH Cloud OVH Cloud

surcharge obj deja cree ?

2 réponses
Avatar
remy
bonjour

est il possible en java de surcharger une fct/methode ou dans rajouter une
sur un obj deja cree
par exemple

String s=new String("123");
s=s+public int test(){return 2;};

s.test();
retour 2
merci remy

2 réponses

Avatar
vc.spam
Bonjour,

tu peux faire une surcharge de fonction déclaré dans la classe, mais,
il faut que la classe et la fonction soit redéfinisable (pas
"final"). Et surtout il faut que la fonction existe dans le type de
départ.

En admettant que String ne soit pas déclaré final (mais elle est
finale) tu pourrais écrire:

s = new String(s)
{
public String toString()
{
//surcharge de la version normale
return "ma chaine est " + this;
}
};

ce code n'est pas possible puisque que String est final mais ça
marcherait avec Object... Sauf qu'il faut un constructeur de copie
(constructeur utilisant un Objet de même classe pour créer un nouvel
objet) qui n'est pas dans object. Je pense que ça marcherait avec une
liste (j'ai pas la Javadoc sous la main).

En fait ça revient à définir une classe héritant de String
redéfinissant la méthode to String. c'est ce qu'on appelle une classe
anonyme, ça se fait bcp pour créer des instances unique d'une classe,
notamment des instances d'interfaces...

Voilà, A+


"remy" wrote in message news:<4173d27c$0$27896$...
bonjour

est il possible en java de surcharger une fct/methode ou dans rajouter une
sur un obj deja cree
par exemple

String s=new String("123");
s=s+public int test(){return 2;};

s.test();
retour 2
merci remy


Avatar
Wismerhill
remy ecrivit le 18/10/2004 16:27 :
bonjour

est il possible en java de surcharger une fct/methode ou dans rajouter une
sur un obj deja cree
par exemple

String s=new String("123");
s=s+public int test(){return 2;};

s.test();
retour 2
merci remy


Non, sauf avec http://www.beanshell.org/home.html