Programmation objet
Voici l'algo vu en cours, algo traité par un compilateur style javac ou c++:
1/ Collecter l'ensemble des méthodes nommées "m" à partir du type déclaré, y compris les méthodes "m" des sur-types.
2/ Eliminer les méthodes qui n'ont pas le même nombre de parramètres.
3/ On élimine les méthodes tel que les paramètres ne sont pas compatibles avec les types déclarés des paramètres.
4/ Evaluation des coûts de conversion pour chacune des méthodes restantes.
5/ Résolution de la liaison dynamique à partir du type réel de x, on cherche la 1 ere méthode qui correspond exactement à la signature sélectionnée par la surcharge. Puis on l'execute.
[type déclaré] x = new [type réel]();
-----------Java--------------
interface Nourriture{}
interface Herbe extends Nourriture{}
class Animal {
public void mange(Nourriture v) {
System.out.println("Viande");
}
}
class Lapin extends Animal {
public void mange(Herbe h) {
System.out.println("Herbe");
}
}
Animal a = new Lapin();
Herbe h = new Herbe();
a.mange(h);
------------------------------
Expliquer pourquoi l'objet "a" mange de la viande.
------------------------------
Je trouve que a mange de l'herbe ... au secours j'ai un exam demain et soit j ai pas compris soit il y a une erreur ds mon cours ou ds l exo ??? Je ne veux pas de supositions, mais une réponse claire de quelqu un connaissant parfaitement ll'algorithme de sélection. Merci d'avance de votre aide
Poste le Sunday 4 February 2007 18:22:13