• # Si j'ai bien compris l'article Wikipédia...

    Posté par . En réponse au message C'est quoi le multi-méthode ?. Évalué à 3.

    le multi-méthode serait un cas particulier de polymorphisme.

    Le polymorphisme peut être statique lorsqu'on peut déterminer à la compilation quel code il faut exécuter, en regardant les types des arguments.

    Ou dynamique, lorsqu'on ne sait pas à l'avance quel code sera exécuté, parce qu'un argument (mono-méthode) est de type dynamique ou que plusieurs (multi-méthode) le sont.
    A noter que pour une méthode, il faut considérer la classe comme un premier argument.
    En C++/Java, une méthode virtuelle est en général une mono-méthode, sinon une "multi-méthode".

    Wikipédia montre un 1er exemple d'imitation de multi-méthodes en C++ (applicable aussi en Java), en déterminant le(s) type(s) manuellement (ici, par essais de transtypages), puis en appelant le bon code.
    La 2è implémentation en C++ est plus élégante mais suppose d'avoir des arguments permutables (d'ailleurs, il faut s'assurer que 'void Asteroid::collide_with(Spaceship *)' et 'void Spaceship::collide_with(Asteroid *)' soient identiques, l'une appelant l'autre).

    Ton exemple de code Java est correct, mais on n'a même pas affaire à des mono-méthodes.