This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||||||||||||||||||||||||||||||||
|
Compare the most recent edit (10:09, 3 January 2007) to the one before it (13:34, 22 December 2006). I actually agree that Multiple Inheritance is very useful and its problems can be overcome, but this is pretty blatant POV. If there are no objections, I'll revert it tomorrow. 152.23.77.52 17:46, 17 January 2007 (UTC)
Regarding the second paragraph, I believe the .NET languages (or at least C# and VB) have an Interface rule as well. MSDN has an article on it. I'm not confident enough in my knowledge of programming languages in general and Java in particular to say whether this is really the same thing as what's being discussed in paragraph two, but they look pretty similar to me. Jonathan Lurie of Builder.Com has an article on the subject in which he discusses the two to some extent.
MSDN article: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbls7/html/vblrfvbspec4_2_2.asp
Lurie's article: http://builder.com.com/5100-6373-5030734.html
Adding this information to the second paragraph. -- Pangloss
Regarding the paragraph beginning "Multiple inheritance has been a touchy issue for many...": Aside from the problems introduced for the user of multiple inheritance, isn't there also implementation overhead that influences this decision? (Specifically, I think that a typical compiled multiple-inheritance implementation incurs a larger object reference size and additional run-time code for upcasting.) If this overhead actually deters language designers from including multiple inheritance in their language, then it should be mentioned here. I'm not sure enough to make the change myself.
I've had trouble finding any web pages that discuss the implementation of multiple inheritance. Some more external links here would be great. --barryd 05:05, 9 March 2006 (UTC)
I just wanted to note a Recent discussion in the Microsoft C@ language forum ...
... that is relevant to an articulate and definitive definition of Multiple Inheritance.
See Thread : Strategic Functional Migration and Multiple Inheritance
Introduced in this discussion is the importance of separating the following issues relevant to Multiple Inheritance.
[1] Syntax [2] Composition [3] Under the cover (compiler implementation) issues
In dropping these issues (temporarily of course) we were able to focus the discussion of MI to its utility in the structural aggregation of the target functionality.
A key concept introduced in the discussion is Shawnk's (USA) term of 'functional normalization' to qualify Redek Cerny's comment regarding normalizing code functionality via Multiple Inheritance (MI).
Redek Cerny's (Australia) excellent comment on 'functional normalization' is a concise term to articulate the 'realized benefit' of MI relative to providing a structural aggregation mechanism while still retaining the functional normalization of the orignal code base.
Functional normalization may well be the core architectural impetus of Multiple Inheritance (MI).
It appears (jury still out) that C# and .NET do not support a functionally normalized code base BECAUSE there is no support for MI in any .NET language.
The importance of a functionally normalized code base to programming is equal to the importance of a normalized data base in data base systems.
I encourage all contributors to the WikiPedia definition of Multiple Inheritance to review Redek Cerny's contribution to the SFM (Strategic Functional Migration) discussion.
The term 'functional normalization' may be an important qualifier to better articulate the benefits and architectural impetus of Multiple Inheritance.
Shawnk
I suggest that the 'see Also' section should contain a link to the Interfaces WikiPedia page. A link to an 'Implementation Inheritance' page should also be made when that page is created.
Shawnk
There is two Common Lisp solution to diamond inheritance problem written here. Can we get rid one of them. — Preceding unsigned comment added by 95.10.101.218 (talk) 23:47, 26 August 2012 (UTC)
The text suggests that the problems of multiple inheritance go away by using interfaces (see the last paragraph of the introduction). This is not true: most of the problems are related to multiple subtyping (having multiple paths through the type hierarchy to the same parent) and not multiple inheritance (getting the same code multiple times). I really think that there is a clarification needed. --Schoelle 18:47, 14 November 2007 (UTC)
The example using Filter circuits and their components is quite poor - while a fair example, those not used to fundamental electronics will not be able to grasp the example. Much better to use something everyone understands, such as bikes and cars, the de facto standard example objects for OOP problems. dimo414 (talk) 06:29, 25 May 2008 (UTC)
Maybe the article can indicate the earliest language to utilize this feature.72.84.141.136 (talk) 17:37, 23 March 2009 (UTC)
indeed, that'd be great! my bet is on lisp! 79.193.83.44 (talk) 22:21, 23 September 2009 (UTC)
Hi there, can we please have a minimal example of this behaviour, if possible in C++? This is the first time I hear this claim and I could not replicate it. Thank you. 118.7.198.171 (talk) 08:25, 14 June 2009 (UTC)
This page was flagged as a copyright problem at Wikipedia talk:India Education Program#Multiple inheritance and listed at Wikipedia:Copyright problems/2011 November 2. I've now reverted to the last pre IEP revision. Further
this seems to be a pre IEP problem dating back to 2007 [2]. I've now replace that with an earlier version [3].--Salix (talk): 09:49, 8 November 2011 (UTC)
Hi. I have not done any copyvio on my project page Multiple Inheritance. But I see you have reverted back all my changes. May I know why have you done that? Also the entire material as well as diagrams were made by me. There were some users who said that the definition seem to be possible copyvio. So I changed that. Other than that there was nothing that was copied. So I request you to please bring back my changes. RAJATPASARI (talk) 17:13, 9 November 2011 (UTC)
In section "Mitigation", item "Python", it is currently stated that "That algorithm [C3] enforces two constraints: children precede their parents". Unless I'm mistaken, this is not correct, see the second example here: http://www.python.org/download/releases/2.3/mro/#examples. Since I'm not an expert pythonist, I'd like someone more experienced than me to comment before editing this sentence. Manuel (mpg) (talk) 14:08, 21 September 2012 (UTC)
Hi. In the Languages Section of this Article, when i click on "Deutsch" (German) it leads to the Diamond Problem (in german Wikipedia, this Problem has it's own Article). But there is an Article about Multiple Inheritance as well here: https://de.wikipedia.org/wiki/Mehrfachvererbung Could one of you please correct that? I tried to google how to do that, but couldnt find the answer. Thanks in Advance!
I've create Java classes that worked fine with multiple interfaces in Java 5-7, and seen other code that does this. Clearly this was allowed before Java 8, unless I've slipped into a parallel time line. As the alternative seems ridiculous I must be a simple and absolute fact that Java allowed multiple interfaces (though not true multiple inheritance) before Java 8. --50.149.180.189 (talk) 16:30, 6 July 2014 (UTC)
Is it consistent that Scala is marked as featuring MI while Java, whose object system it uses, after having upgraded to the most possible degree, is marked as not? Scala's traits are not classes but generalization of Java's interfaces (actually, typeclasses built on top of those, heh?). In Scala, a type has only one parent type and mixins are but types with traits. — Preceding unsigned comment added by 31.173.81.65 (talk) 01:11, 13 February 2016 (UTC)
Somebody who understands the Rust language should add a paragraph to the Mitigation section about how Rust avoids the Diamond problem. —MiguelMunoz (talk) 21:43, 27 November 2020 (UTC)
This article was the subject of an educational assignment at College Of Engineering Pune supported by Wikipedia Ambassadors through the India Education Program during the 2011 Q3 term. Further details are available on the course page.
The above message was substituted from ((IEP assignment))
by PrimeBOT (talk) on 19:58, 1 February 2023 (UTC)