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

 

QCM-JavaQCM 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?
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.

 

Différence entre Héritage et CompositionDiffé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?
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.

 

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.

 

Différence entre Surcharge et RedéfinitionDifférence entre Surcharge et Redéfinition en JavaQuelle est la différence entre Surcharge et Redéfinition ? – la surcharge de fonctions est utilisée dans une seule classe où vous avez le même…Lire plus
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.

 

 
 
Partagez cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *