Question programmation java

laurent -  
 HackTrack -
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

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