Bonjour, je suis sur un exercice et j'aimerais avoir votre avis sur cce que j'ai fait et votre aide sur ce que je bloque.

Soient 6 classes C1,...C6 et une interface I avec :
C2 extends C1 implements I
C3 extends C1
C4 extends C2
C5 extends C2
C6 extends C3 implements I.

Maintenant dans un main :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
C1 a1 = new C1();
I a2 = new C4();
I a3 = new C6();
C3 a4 = new C6();
C3 a5 = a3;
a5 = a4;
a2 = a3;
C2 a6 = new C2();
a4 = a6;
C4 a7 = a6;
a6 = a2;
Pour chaque instruction je dois :
- dire si elle passe à la compilation
- si non la corriger par un cast
- puis dire si elle passe à l'execution.

Ce que je propose :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
C1 a1 = newC1();
I a2 = new C4();
I a3 = new C6();
C3 a4 = new C6();
C3 a5 = (C3)a3;
a5 = a4;
a2 = a3;
C2 a6 = new C2();
(C1)a4 = (C1)a6;  // mais là ça ne passe toujours pas à la compilation
C4 a7 = a6;  // là je vois pas trop, à part qu'elles ont C1 et I en commun
a6 = (C2)a2;
Merci de votre aide.