Un petit article qui montre la différence entre les classe abstraites et les interfaces, les bienfaits dans la pratique de la redéfinition de méthodes et comment utiliser les interfaces.
Article : [url]http://istacee.wordpress.com/[/url]
[quote:71fe7aebd9]Voici un petit cours/tutos sur les interfaces en java. Le but n’est pas d’expliquer en profondeur le fonctionnement des interfaces, cela ayant déjà été fait par pas mal de gens.Pour la théorie je recommande deux ouvrages, le premier, chez Eyrolles, “Programmer en Java” de Claude Delannoy, Ingénieur au CNRS, dans la collection BestOf. Une véritable bible du développeur Java à petit prix (800 pages, 19 € prix couverture) déjà vendu à 250 000 exemplaires, traduit en plusieurs langues (ce qui est remarquable pour un livre technique de ce type). Ce serait un crime de ne pas se jeter dessus. Un second, plus générique, toujours chez Eyrolles, “La programmation Orientée Objet, Cours et Exercices en UML2, Java, C#, C++, Python, PHP et Linq” par Hughes Bersini, Ingénieur physicien et Directeur du Laboratoire sur l’intelligence artificielle à l’ULB (Université Libre de Bruxelles), un pédagogue exceptionnel et ouvert que j’ai d’ailleurs eu l’occasion de rencontrer il y a quelques mois dans le cadre d’un salon sur le logiciel libre. 600 pages +/- à 35 € prix couverture. Bon, ceci étant dit, je pars du principe que la théorie de l’héritage, le polymorphisme, l’abstraction et les règles de bases qui sous-tendent l’OO sont connues (pas forcément maîtrisées). Passons au but de l’article, montrer en quoi les interfaces sont réellement un outil/concept utile à la conception d’un logiciel et offre une réelle abstraction supplémentaire par rapport aux classes abstraites et à l’héritage de classes abstraites. En effet, à la lecture de beaucoup de cours, les interfaces sont souvent très bien expliquées dans la théorie mais pas dans la pratique, ce qui, au final, donne la sensation au lecteur qu’une interface est juste une classe abstraite sans l’implémentation des méthodes de classes.[/quote:71fe7aebd9]