Interface Cloneable JAVA

Fermé
firehawk - 10 sept. 2015 à 11:31
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 10 sept. 2015 à 19:39
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 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
10 sept. 2015 à 19:39
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