★ À maîtriser
Compléments
Le quoi est séparé du comment : super-classe commune, implémentations spécialisées.
★ À maîtriser
📌 Une classe contenant au moins une méthode abstraite doit être déclarée abstract, et toute sous-classe doit implémenter les méthodes abstraites ou être elle-même déclarée abstract.
Compléments
Classe incomplète → impossible à instancier ; sous-classe concrète → implémentation obligatoire.
★ À maîtriser
📌 Le mot-clé implements rend une classe conforme à une ou plusieurs interfaces et l’oblige à implémenter toutes leurs méthodes publiques.
Compléments
Une interface agit comme un contrat signé par les classes qui l’implémentent.
★ À maîtriser
📌 Une généralisation est incorrecte lorsque des sous-classes de même niveau reposent sur des critères de classification hétérogènes, comme Salarié et Libéral classés par profession alors que Sportif relève d’une autre classification.
Compléments
📌 Une confusion de niveau d’abstraction apparaît lorsqu’une relation relie des concepts situés à des niveaux conceptuels différents, comme Modèle de voiture, Voiture et Propriétaire.
Même niveau d’abstraction : les sous-classes doivent partager un critère de classification cohérent.
L’API forme une boîte à outils : interfaces, implémentations et utilitaires.
★ À maîtriser
📌 Les méthodes de Collection qui comparent des objets, comme contains(), testent l’égalité définie par equals() et non l’égalité des références.
Compléments
Collection décrit le conteneur ; List ajoute ordre, indexation et doublons.
★ À maîtriser
📌 Les objets utilisés comme clés d’une Map doivent redéfinir Object.hashCode(), et les comparaisons utilisent equals().
Compléments
TreeMap implémente Map avec un arbre binaire équilibré ordonné et non synchronisé.
Hashtable est une implémentation synchronisée de Map issue de la classe Hashtable de Java 1.1.
HashMap est non ordonnée, TreeMap ordonnée et Hashtable synchronisée.
★ À maîtriser
ArrayList implémente List avec un tableau, peut être rapide, mais est ralentie par les insertions au milieu ou les changements fréquents de dimension et n’est pas synchronisée.
Pour trier une List, on utilise Collections.sort(List) ou Collections.sort(List l, Comparator c), tandis qu’un Map trié utilise SortedMap et TreeMap et qu’un Set trié utilise SortedSet et TreeSet.
📌 Comparable impose un ordre naturel avec compareTo(Object o), tandis que Comparator compare deux objets avec compare(Object o1, Object o2), y compris des objets de classes différentes.
Compléments
📌 Les méthodes compareTo et compare doivent retourner un entier négatif, zéro ou positif lorsque le premier objet est respectivement inférieur, égal ou supérieur au second.
Choisir la structure → définir la comparaison → appliquer le tri.
| Implémentation | Structure | Ordre | Synchronisation |
|---|---|---|---|
| HashMap | Table de hachage | Non ordonnée | Non synchronisée |
| TreeMap | Arbre binaire équilibré | Ordonnée | Non synchronisée |
| Hashtable | Implémentation historique | Non précisé | Synchronisée |
| Implémentation | Structure | Caractéristique |
|---|---|---|
| ArrayList | Tableau | Rapide, mais ralentie par les insertions au milieu |
| LinkedList | Liste dynamique doublement chaînée | Adaptée notamment aux files d’attente |
Teste tes connaissances sur POO Java : polymorphisme et collections avec 20 questions à choix multiples et corrections détaillées.
1. Quel principe permet de séparer l’interface commune d’un objet de la manière concrète dont chaque sous-classe réalise cette interface ?
2. Lorsqu’une référence de super-classe désigne un objet d’une sous-classe, quelle opération permet de traiter cet objet sans tenir compte de son type précis ?
Mémorisez les concepts clés de POO Java : polymorphisme et collections avec 44 flashcards interactives.
Qu'est-ce que le polymorphisme en programmation orientée objet ?
Le polymorphisme découple le quoi du comment via une interface en super-classe et plusieurs implémentations en sous-classes.
Quel est l'effet de l'upcasting sur le type précis d'un objet ?
L'upcasting fait oublier intentionnellement le type précis d'un objet.
Que permet de faire l'upcasting avec les sous-classes d'une super-classe ?
L'upcasting permet de traiter sans distinction les sous-classes d'une même super-classe.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches