Question programmation java

Fermé
laurent - 19 avril 2002 à 15:14
 HackTrack - 22 avril 2002 à 10:40
Salut. Je me pose une question de programmation. Voilà un petit bout de code

Vector v = new Vector();
v.add(new Integer(10));
v.add(new Integer(8));
Enumeration e = v.elements();

Pourquoi ce bout de code compile t'il alors qu'Enumeration est une interface et non une classe.
merci de votre aide
A voir également:

2 réponses

Parceque lorsque tu utilises la méthode elements(), c'est un objet qui t'es renvoyé, pas une interface. Cet objet implémente l'interface Enumeration et est donc bien du type Enumeration.
En OO, on appelle cela le polymorphisme.

Un exemple:

public List getItems(){
ArrayList items = null;
.
.
.
return items;
}

C'est bien un objet de type ArrayList qui est renvoyé, mais celui qui appelle la méthode recevra une List.
Ce mécanisme st souvent utilisé pour caché le type réél de l'objet que tu renvoies à celui qui appelle la méthode, de manière à ne pas lui donner accès à certaines méthodes de la classe qui implémente l'interface, par exemple.

;-)
HackTrack
0
Parceque lorsque tu utilises la méthode elements(), c'est un objet qui t'es renvoyé, pas une interface. Cet objet implémente l'interface Enumeration et est donc bien du type Enumeration.
En OO, on appelle cela le polymorphisme.

Un exemple:

public List getItems(){
ArrayList items = null;
.
.
.
return items;
}

C'est bien un objet de type ArrayList qui est renvoyé, mais celui qui appelle la méthode recevra une List.
Ce mécanisme st souvent utilisé pour caché le type réél de l'objet que tu renvoies à celui qui appelle la méthode, de manière à ne pas lui donner accès à certaines méthodes de la classe qui implémente l'interface, par exemple.

;-)
HackTrack
0