Bonjour, j'ai un petit exercice à résoudre. Je fais du Java depuis quelques mois et je me pose quelques questions. J'aurais besoins de confirmations si possible.
L'exercice est le suivant :
On nous donne:
-----------------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 class Object{ public void say() { System.out.println("Nothing"); } } class Cube extends Object{ } class Wood extends Cube{ public void say() { super.say(); System.out.println("WOODY"); } } class BigWood extends Wood{ } class RedWood extends BigWood{ public void say() { System.out.println("BIG RED WOOD"); } } class Perforated extends RedWood{ public void say() { super.say; System.out.println("BIG RED WOOD & HOLE"); } } class GreenWood extends BigWood{ public void say() { System.out.println("BIG GREEN WOOD"); } }
Soit la méthode main suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public static void main(String argv[ ]) { Cube [ ] ta; ta = new Cube[5]; Object o1 = new Object(); Object o2 = new RedWood(); Cube o3 = new Wood(); BigWood o4 = new BigWood(); Perforated o5 = new Perforated(); BigWood o6 = new RedWood(); Cube o7 = new CreenWood(); o1.say(); o2.say(); o3.say(); o4.say(); o5.say(); o6.say(); o7.say(); ta[0] = (Cube) o2; ta[1] = (Cube) o3; ta[2] = (Wood) o4; ta[3] = (Cube) o5; ta[4] = o7 for(int i = 0; i<5; i++) ta[i].say(); }
Questions: -Hormis les chaines, combien d'objets sont réellement créés en mémoire? (Je dirais 8)
-Qu'affichera la méthode main() ? (ce dont j'ai le plus de doutes)
Si quelqu'un peut prendre 5 minutes pour m'aider à m'éclaircir les idées...![]()
Partager