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.
[wx_adsense]
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.
[wx_adsense]
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.
Différence entre Héritage et CompositionBien que l’héritage et la composition permettent la réutilisation du code, la principale différence entre la composition et l’héritage réside dans le fait que la…Lire plus
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.