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, nous pouvons, mais seulement à partir de Java 5. Cette fonctionnalité est connue sous le nom de covariance de type et elle a été introduite dans la version JDK 5. Ceci est extrêmement utile si la méthode originale retourne le type de la classe mère par ex. La méthode clone() renvoie java.lang.Object. En utilisant cela, nous pouvons renvoyer directement le type actuel, en empêchant le casting de type du résultat.
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
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?
A partir de Java 8, nous pouvons avoir une méthode non abstraite à l’intérieur d’une interface, avant cela, elle n’était pas autorisée car toute méthode était implicitement précéder par public abstract. À partir de JDK 8, nous pouvons ajouter une méthode statique et par défaut dans une interface.
7. Quelle est la différence entre Composition et Héritage dans la POO?
Ceci est une autre excellente question sur les concepts de POO car elle teste ce qui compte, les deux sont très importants au niveau de conception. Bien que la Composition et l’Héritage nous permettent de réutiliser le code. La composition permet à la classe d’obtenir une fonctionnalité supplémentaire lors de l’exécution, mais l’héritage est statique. Nous ne pouvons pas modifier la fonctionnalité lors de l’exécution en substituant une nouvelle implémentation. Voir ici plus de détails.
8. Qu’est-ce qu’une classe abstraite en Java?
Une classe abstraite est une classe incomplète. Nous ne pouvons pas créer une instance d’une classe abstraite en Java. Ils sont fournis pour définir le comportement par défaut et s’assurer que le client de cette classe doit adorer ceux qui sont définis dans la classe abstraite. Pour l’utiliser, nous devons hériter et implémenter leurs méthodes abstraites. Cependant, en Java, une classe peut être abstraite sans spécifier de méthode abstraite. Voir ici plus de détails.
9. Qu’est-ce qu’une interface en Java? Quelle est la vraie utilisation d’une interface?
Comme une classe abstraite, l’interface est également là pour spécifier le point d’une API. Il supporte le concept d’abstraction POO car il ne définit que le comportement abstrait. Il dira que votre programme donnera la sortie, mais comment? L’utilisation est laissée a la personne qui va implementer cette interface. Les interfaces sont utilisées pour définir des types polymorphes. 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