Questions piège sur la Programmation Orientée Objet – JAVA – Partie 3
Les questions pouvant être posées par des recruteurs sont nombreuses. Ce sont quelques-unes des questions les plus fréquemment posées. Prenez le temps de lire ces questions et réfléchir soigneusement à la façon dont vous répondriez à chacune d’elles lorsqu’on vous le demandera.
1. Est-ce que nous pouvons changer le type de retour d’une méthode redéfinie dans une sous-classe ?
Oui. Depuis Java 5, une méthode redéfinie peut avoir un type de retour covariant, c’est-à-dire qu’elle peut retourner un sous-type du type de retour de la méthode de la superclasse. Cette fonctionnalité améliore la lisibilité du code et évite les conversions (cast) inutiles.
2. Qu’est-ce que la covariance de type de méthode redéfinie dans Java?
Dans la covariance de type de méthode redéfinie, la méthode redéfinie peut renvoyer l’objet de la sous-classe renvoyé par la méthode originale ou par la méthode redéfinie. Ce concept a été introduit dans la version Java 1.5 (Tiger) et très utile si la méthode originale retourne un type général comme Object, car en utilisant la covariance, nous pouvons renvoyer un objet plus approprié et empêcher le casting du type. Une des utilisations pratiques de ce concept est lorsque nous redéfinissons la méthode clone() en Java.
3. Quand utiliser le pattern de conception Singleton en Java?
Lorsque nous n’avons besoin que d’une instance d’une classe et que nous souhaitons qu’elle soit disponible globalement, nous pouvons utiliser ce pattern. Ce n’est pas gratuit car cela augmente le couplage entre les classes et les rend difficiles à tester.
Design pattern Singleton

source : wikimedia.org
QCM Java – Programmation Orientée ObjetQCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
4. Pouvons-nous changer la liste d’arguments d’une méthode redéfinie?
Non, nous ne pouvons pas. La méthode originale et la méthode redéfinie doivent avoir la même signature.
5. Pouvons-nous redéfini une méthode qui lève une exception d’exécution sans la clause throws?
Oui, il n’y a pas de restriction sur les exceptions non contrôlées lors de la redéfinition. D’ailleurs, dans le cas d’une exception vérifiée, une exception de la méthode redéfini ne peut pas lancer une exception vérifiée qui est plus élevée dans la hiérarchie de type que la méthode originale, par ex. IOException, méthode redéfini ne peut pas lancer java.lang.Exception ou java.lang.Throwable.
6. Pouvons-nous avoir une méthode non abstraite à l’intérieur d’une interface?
Oui. Depuis Java 8, une interface peut contenir des méthodes non abstraites grâce aux méthodes default et static, qui possèdent une implémentation. Avant Java 8, toutes les méthodes d’une interface étaient implicitement public abstract et ne pouvaient pas contenir de code.



7. Quelle est la différence entre Composition et Héritage dans la POO?
L’héritage permet à une classe de réutiliser et d’étendre une autre classe (relation « est un » / is-a), tandis que la composition consiste à construire une classe en utilisant des objets d’autres classes (relation « a un » / has-a). Les deux favorisent la réutilisation du code, mais la composition est plus flexible, car elle permet de remplacer ou de modifier les objets utilisés à l’exécution, contrairement à l’héritage qui est défini à la compilation. Voir ici plus de détails.
8. Qu’est-ce qu’une classe abstraite en Java?
Une classe abstraite est une classe incomplète qui ne peut pas être instanciée directement. Elle sert de classe de base pour partager des attributs, des méthodes et un comportement commun entre plusieurs classes. Elle peut contenir des méthodes abstraites (sans implémentation) et des méthodes concrètes (avec implémentation). Une classe qui hérite d’une classe abstraite doit implémenter ses méthodes abstraites, sauf si elle est elle-même déclarée abstraite. Voir ici plus de détails.
9. Qu’est-ce qu’une interface en Java? Quelle est la vraie utilisation d’une interface?
Une interface en Java est un contrat qui définit un ensemble de méthodes qu’une classe doit implémenter. Elle permet de spécifier un comportement sans imposer la manière dont il est réalisé, favorisant ainsi l’abstraction et le polymorphisme. Une même interface peut être implémentée par plusieurs classes ayant des implémentations différentes. Voir ici plus de détails.



10. Quelles sont les règles pour surcharger et redéfinir une méthode en Java?
L’une des règles les plus importantes pour la surcharge de méthode en Java est que la signature de la méthode doit être différente, c’est-à-dire le nombre d’arguments ou le type d’arguments. Changer simplement le type de retour de deux méthodes n’entraînera pas la surcharge, dans ce cas là, le compilateur lancera une erreur. D’ailleurs, la redéfinition de méthode a plus de règles, par ex. le nom et le type de retour doivent être identiques, la signature de méthode doit également être la même, la méthode redéfinie ne peut pas déclencher une exception plus élevée etc.
Voir: Redéfinition de méthode en Java
Voir: Redéfinition de méthode en Java
- Top 120 Questions d’Entretien sur Java – Partie 1
- Top 120 Questions d’Entretien sur Java – Partie 2
- Top 120 Questions d’Entretien sur Java – Partie 3
- Top 120 Questions d’Entretien sur Java – Partie 4
- Top 120 Questions d’Entretien sur Java – Partie 5
- Top 120 Questions d’Entretien sur Java – Partie 6
- Top 120 Questions d’Entretien sur Java – Partie 7
- QCM Java – JDBC
- QCM Java – String – Partie 1
- QCM Java – String – Partie 2
- QCM Java – String – Partie 3
- QCM Java – String – Partie 4
- QCM Java – Les interfaces – Partie 1
- QCM Java – Les interfaces – Partie 2
- QCM Java 8 Corrigé – Partie 1
- QCM Java 8 Corrigé – Partie 2
- QCM Java – Gestion des exceptions – Partie 1
- QCM Java – Gestion des exceptions – Partie 2
- QCM Java – Les collections – Partie 1
- QCM Java – Les collections – Partie 2
- QCM Java – Les collections – Partie 3
- QCM Java – Les collections – Partie 4
- QCM Java – les interfaces graphiques – Swing
- QCM Java – Programmation Orientée Objet
- QCM Java – JDK JRE JVM et JIT
- QCM Java – Classes et objets
- QCM java J2EE corrigé
- QCM Java – Structures de données – tableaux (Arrays)
- QCM Java – Types génériques
- QCM Java – Les tableaux(Arrays)
- QCM Java – Les énumérations
- QCM Java – Type de données – Les booléens et les chaîne de caractères
- QCM Java – Types de donnée primitifs
- QCM Java – L’utilisation des dates
- QCM JSP – Questions d’entretiens
- QCM – Test de recrutement – Développeur JAVA / J2EE
- QCM J2EE – Gestion de session et sécurité des applications Web
- QCM sur Java EE – Testez vos connaissances – Corrigé
- QCM sur les servlets – Questions et réponses
- Top 10 des questions sur JAVA les plus difficiles en entretien avec les réponses
- 10 Questions piège sur JAVA posées en entretien d’embauche
- Questions piège sur la Programmation Orientée Objet – JAVA – Partie 1
- Questions piège sur la Programmation Orientée Objet – JAVA – Partie 2
- Questions piège sur la Programmation Orientée Objet – JAVA – Partie 3
- Testez vos connaissances – QCM Java corrigé – Partie 1
- Testez vos connaissances – QCM Java corrigé – Partie 2
- Testez vos connaissances – QCM Java corrigé – Partie 3
- Testez vos connaissances – QCM Java corrigé – Partie 4
- Testez vos connaissances – QCM Java corrigé – Partie 5
- Testez vos connaissances – QCM Java corrigé – Partie 6
- Testez vos connaissances – QCM Java corrigé – Partie 7
- Testez vos connaissances – QCM Java corrigé – Partie 8
- Testez vos connaissances – QCM Java corrigé – Partie 9
- Testez vos connaissances – QCM Java corrigé – Partie 10
- QCM Java – Conversions de types et castings
QCMs qui pourraient vous intéresser :
- Questions techniques sur MYSQL
- QCM MySQL Corrigé – Optimisation de requêtes
- QCM Base de données avec correction
- QCM sur PHP
- QCM Symfony
- QCM AngularJS
- QCM React
- QCM HTML / CSS
- QCM Java – Programmation Orientée Objet
- QCM Python
- QCM Cloud Computing
- QCM Framework Spring
- QCM Javascript
- QCM jQuery
- QCM Oracle
- QCM sur GIT – Gestionnaire de version
- QCM Linux – Gestion de processus
- QCM Réseau
- QCM Architecture des ordinateurs
- QCM Securité informatique
- QCM En Informatique Générale
- QCM en C
- QCM en C#
- QCM sur l'algorithmique
- QCM Word
- QCM Excel
- QCM PowerPoint
- QCM Access




