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...