Interface Cloneable JAVA

firehawk -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

Je voudrais savoir pourquoi quand je doit cloner un objet en JAVA il faut implémenter

l'interface Cloneable malgré quelle ne contient pas la signature de la méthode clone()

J'ai trouver des articles qui parlent qu'il s'agit de l'interface de marquage et serve à

quelque chose à JVM.

Mon problème c'est que je savoir comment JVM traite l'interface de marquage

Cloneable et aussi la classe qui l'implémente car je n'est encore compris à quoi sert

réellement l'interface de marquage.

Merci.

A voir également:

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
Bonjour,

Une classe qui implémente une interface rajoute celle-ci à ses types assignables. Du coup il est possible de faire du polymorphisme sur l'interface et donc d'utiliser un objet comme étant du type de l'interface.

Tu peux par exemple regarder ce code et voir comment il se comporte si tu enlèves
implements Cloneable


public class Test implements Cloneable {
    public static void main(String args[]) {
        System.out.println(Cloneable.class.isAssignableFrom(Test.class));
        Test test = new Test();
        System.out.println(test instanceof Cloneable);
        Cloneable clone = test;
        List<Cloneable> list = new ArrayList<Cloneable>();
        list.add(clone);
    }
}
0