• [^] # Re: Interface

    Posté par . En réponse au message dériver une classe conteneur de données de classe dérivée. Évalué à 2.

    Arghh les chevrons passent pas

    je la refais
    public class ContA<E> {
    public ArrayList<E> contA;
    ....
    }

    ....


    public class Main {

    /**
    * @param args
    */
    public static void main(String[] args) {
    ContA<AA> myContA = new ContA<AA>();
    AA a1 = new AA(11, 20);
    AA a2 = new AA(12, 25);
    myContA.contA.add(a1);
    myContA.contA.add(a2);
    Iterator it = myContA.contA.iterator();
    AA a;
    while (it.hasNext()) {
    a = (AA) it.next();
    System.out.println(a.a + " " + a.aa);
    }
    ContA<AA> copyContA = new ContA<AA>(myContA);

    it = copyContA.contA.iterator();
    while (it.hasNext()) {
    a = it.next();
    System.out.println(a.a + " " + a.aa);
    }
    }

    Sinon en passant ce n'est en général pas une bonne idée de déclarer les attributs d'une classe public. Ca casse l'encapsulation et si tu décides de changer l'implémentation de ta classe (remplacer des ArrayList par atre chose par exemple) tu seras obligé de modifier tout ton code dans toutes les methodes appelantes.