Remi Forax:
Tu en es sur ? Je me trompe peut-etre (ma connaissance d'Eiffel est plutot theorique) mais a mon avis tu dois confondre. Un truc assez interessant (et qui manque a Java) est la redefinition du type retourne:Enfin, si je me souvient bien en Eiffel, on peut écrire (syntaxe à la Java pour que tous le monde comprenne) :class A { void m(A a); } class B { override void m(B b); } Qui veut dire que m(B) redéfinie m(A), on donc on peut gaiement écrire le code ci-dessous : A a=new A(); A b=new B(); b.m(a); // pas d'erreur de compile // mais erreur d'exécution
class C extends Object {
public C clone() { ... }
}
Plus besoin de cast:
C c=new C().clone();
Il faut distinguer like de Current. Current est l'equivalent de this. Par contre le mot-clef like est tres interessant: il permet de specifier un type a l'execution:Pour moi, c'est un problème. Enfin, il était entrain d'essayer un type like Current pour éviter ce genre de problème.
a: like b;
-- La variable est declaree avec le meme type que b.
ya des trucs vraiement bien dans ce langage : - vrai prog par contrat
Oui
Oui mais je ne suis pas sur que ce soit applicable a un langage dynamique comme Java. Ton avis ?- redéfinition des variables
Ca se discute. J'ai toujours trouve que c'est mal foutu dans des langages comme C++ et Eiffel parce que les operateurs et leurs priorites sont imposees par la syntaxe. Un des meilleurs compromis que je connaisse est POP-11 qui te laisse redefinir la priorite mais aussi definir tes propres operateurs.- redif des opérateurs
Guillaume