Java prend-il en charge l'héritage multiple Pourquoi ou pourquoi pas ?
Java prend-il en charge l'héritage multiple Pourquoi ou pourquoi pas ?

Vidéo: Java prend-il en charge l'héritage multiple Pourquoi ou pourquoi pas ?

Vidéo: Java prend-il en charge l'héritage multiple Pourquoi ou pourquoi pas ?
Vidéo: #6.3 Java Tutorial | Multiple Inheritance in Java? 2024, Avril
Anonim

java ne prend pas en charge les héritages multiples à travers les classes mais à travers les interfaces, nous pouvons utiliser héritages multiples . Pas de Java ne fait pas prendre en charge l'héritage multiple directement car cela conduit à la redéfinition des méthodes lorsque les deux classes étendues ont le même nom de méthode.

Par conséquent, l'héritage multiple est-il autorisé en Java ?

C++, Common lisp et quelques autres langages pris en charge héritage multiple tandis que Java ne le supporte pas. Java ne fait pas autoriser l'héritage multiple pour éviter l'ambiguïté qui en découle. L'un des exemples d'un tel problème est le problème du diamant qui se produit dans héritage multiple.

Sachez également, pourquoi l'héritage multiple est-il mauvais ? Le danger avec héritage multiple est la complexité. Puisque vous pourriez affecter plusieurs modules dans votre application à partir des mêmes classes parentes, il n'est pas si facile de raisonner sur les changements de code. Toute erreur pourrait provoquer une réaction en chaîne de bugs. C'est ici que héritage multiple peut devenir productif.

Sachez également, quel héritage n'est pas supporté par Java Pourquoi ?

En Java, cela ne peut jamais se produire car il n'y a pas héritage multiple . Ici, même si deux interfaces vont avoir la même méthode, la classe d'implémentation n'aura qu'une seule méthode et cela aussi sera fait par l'implémenteur. Le chargement dynamique des classes rend la mise en œuvre de héritage multiple difficile.

Pourquoi l'héritage multiple est-il utilisé dans l'interface ?

Comme nous l'avons expliqué dans le héritage chapitre, héritage multiple n'est pas prise en charge dans le cas de la classe à cause de l'ambiguïté. Cependant, il est prise en charge en cas de interface car il n'y a pas d'ambiguïté. C'est parce que son implémentation est fournie par la classe d'implémentation. interface Présentable{

Conseillé: