Pourquoi l'héritage multiple n'est pas possible en C# ?
Pourquoi l'héritage multiple n'est pas possible en C# ?

Vidéo: Pourquoi l'héritage multiple n'est pas possible en C# ?

Vidéo: Pourquoi l'héritage multiple n'est pas possible en C# ?
Vidéo: CSharp #13 - héritage 2024, Peut
Anonim

C# fait ne pas Support héritage multiple , parce qu'ils ont estimé que l'ajout héritage multiple a ajouté trop de complexité à C# tout en offrant trop peu d'avantages. En C#, les classes sont uniquement autorisé à hériter d'une seule classe parente, appelée single héritage.

Justement, pourquoi l'héritage multiple n'est pas autorisé ?

Java prend en charge héritage multiple via des interfaces uniquement. Une classe peut implémenter n'importe quel nombre d'interfaces mais ne peut étendre qu'une seule classe. L'héritage multiple n'est pas pris en charge car cela conduit à un problème mortel de diamant. Une interface est un contrat de choses que votre classe doit implémenter.

On peut aussi se demander: peut-on hériter de plusieurs interfaces en C# ? Interfaces sont comme des accords ou des "contrats" sur ce qu'est une classe peut faire . Des classes pouvez ont plusieurs interfaces , mais les classes ne peuvent pas hériter de plusieurs Des classes. Des classes hériter de plus de une la classe est connue sous le nom plusieurs - héritage . C# fait ne pas permettre plusieurs - héritage.

Ici, quel est le problème de Diamond dans l'héritage multiple C# ?

Les " problème de diamant " est une ambiguïté qui survient lorsque deux classes B et C hériter de A, et classe D hérite de B et de C. S'il existe une méthode dans A que B et C ont surchargée, et que D ne la remplace pas, alors quelle classe de la méthode fait D hériter : celui de B, ou celui de C ?

Qu'est-ce que l'héritage multiple en C# avec exemple ?

C# ne permet pas héritage multiple avec des classes mais il peut être implémenté à l'aide de l'interface. La raison derrière est: Héritage multiple ajouter trop de complexité avec peu d'avantages. Il y a d'énormes chances de conflit entre les membres de la classe de base. Héritage avec l'interface fournit le même travail de héritage multiple.

Conseillé: