This is the
talk page of a
redirect that targets the page: • Inheritance (object-oriented programming) Because this page is not frequently watched, present and future discussions, edit requests and requested moves should take place at: • Talk:Inheritance (object-oriented programming) |
This redirect does not require a rating on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||
|
This article has been kept following this VFD debate. Note that it has been suggested that another article be merged with this one. Sjakkalle (Check!) 09:44, 11 August 2005 (UTC)
See also: Talk:Inheritance_(object-oriented_programming)
I commented out reference to CSS as example of inheritance because CSS does not behave with inheritance; it is not possible to actually inherit from a class and modify it. Instead you get to override the prior definition.
I'm not sure we are in full disagreement. CSS definitely cascades but doesn't really inherit. I almost removed the change because I realized it had been a while (a few months) since I had actually cursed the design of CSS while trying to get true inheritance from it, so I couldn't remember the specifics well enough to as clearly detail why it isn't. Maybe I'll go try and do some CSS again so I can remember why I hate it so much (and wish it were more object-oriented.) MikeSchinkel 03:36, 26 Oct 2003 (UTC)
Tell ya what, next time I work with CSS and run into the reasons for my dislike and belief it isn't object oriented, I'll rush here and give a full narrative. Right now I just can't remember. BTW, its not that I prefer CSS over nothing, just that I dislike it more for what it is not than for what it is. MikeSchinkel 23:55, 29 Oct 2003 (UTC)
Well, the W3C standard calls it inheritance and properties are (loosely:)) inherited by child elements, so it is part of the computer science coverage of the topic. Obviously, it's not a very pure representation of what I'm thinking of when writng C++.:) But this article is broader than just OOP... that's why it's at computer science instead of confined only to OOP's view of the concept. OOP can be purist about it (and maybe should be), but that's not the right viewpoint for a general overview of the whole concept. Mike, please let rip here on the compare and contrast - that'll produce some good coverage of the similarities and differences in the use of inheritance in CS. JamesDay 23:26, 30 Oct 2003 (UTC)
This is something of a can of worms that you may be onto here! I'd invite you to refer to several months' worth of discussion on Talk:Inheritance (object-oriented programming), if you haven't already. It's surprising how emotionally entangled one can get with the seemingly simple issue of naming an article.
I do agree that whatever is happening in CSS is certainly not any kind of "is-a" relationship, and I would prefer not to have any object-oriented principles implied in the current article, since there is already Inheritance (object-oriented programming) for covering that. Inheritance (computer science) is in its infancy, and needs a ton of work that I am probably not qualified to do, so please feel free to improve it.
As you might gather from the other discussions, there is some disagreement about whether inheritance makes any sense outside of an OOP context. I think that there are some areas of computer science that have an inheritance concept, yet have nothing to do with object-oriented programming. CSS is one of them; it's open for debate whether it should really be called inheritance, but the W3C refers to it as such, so I think there should at least be a mention of it. Of course, we shouldn't limit it to CSS; if you can think of other CS-related circumstances, outside of OOP, in which some form of inheritance is used, those would be great to have too! -- Wapcaplet 18:17, 9 Nov 2003 (UTC)
Mike, thanks, that's just the sort of thing I thought that you'd end up writing (because it's the sort of thing I'd be writing if I was thinking in C++ programmer mode:)). It's part of why I didn't want the (OOP) version to be the (CS) article. The Wikipedia is descriptive, not prescriptive, so we have to describe all of the semi-common uses of the term. Hence, word processing as an easy to understand introduction for non-programmers, CSS as a really common use and OOP as another very common use. The article needs to do as you remarked: either adjust the definition to include all of the uses or have multiple definitions to cover each class of meaning. Then it gets to compare and contrast and refer to the topic-specific articles for more details of how those topics define and use the term. At that point, we'll have some really comprehensive coverage of what inheritance can mean in the field. And Inheritance (OOP) can be really purist about what it means by inheritance, as can CSS be about its meaning.:) JamesDay 05:45, 10 Nov 2003 (UTC)
[This comment is part of the Controversial Articles list --] References (contain links outside Wikipedia): CLU -- Smalltalk -- Simula67 [Here is some history of the concept] --
[Here is some content]
Inheritance is expressed with the extends keyword in Java, which is an is-a relationship, or by the : notation in
C++.
The inheritance concept reifies the is-a relationship. Thus the proposition "Socrates is a Man" states that
169.207.85.65 13:24, 2 Nov 2003 (UTC)
It seems to me that this article is heading straight down the road of "Inheritance only exists in object-oriented programming." The opening sentence even states that inheritance creates an "is-a" relationship. There has been a lot of discussion about whether this article should exist; the only reasonable justification for its existence is the notion that inheritance makes sense outside the context of OOP, so I think we should try to make this article about inheritance that occurs in other ways in computer science. -- Wapcaplet 14:52, 5 Jan 2004 (UTC)
OK, I'm gonna dive in and do a rewrite. No offense to those who have contributed to the current version, but as it stands it's strongly structured towards the object-oriented programming concept of inheritance; I think this article should be relatively short, and be something more like a disambiguation page (since we already have Inheritance (object-oriented programming) and Inheritance (genetic algorithm)) and brief discussion of a few of the potential alternate meanings for "inheritance" in broadly computer-science-related areas, such as CSS, word processor styles, and implementation of inheritance concepts in non-OO languages. Some mention also of the disagreement over what is "true" inheritance and what isn't (some believe that inheritance makes no sense outside of OOP, in which case this article shouldn't even exist; some, like me, believe that we should at least mention the cases where the word "inheritance" is used even though it isn't "true inheritance" of whatever kind). Here goes... -- Wapcaplet 19:35, 12 Feb 2004 (UTC)
Attempts of reading on the topic of "is-a" leads by way of redirects to here where the expression is not even mentioned once in the article. I wish people were not that trigger happy about redirects without doing the actual works of merging the topics and making sure there is no loss on the way.
In fact as the original topic stands it is more enlightening than the redirects it was replaced by.
Inheritance and polymorphism are not "dual views" of the same thing. I would rather say that they partially overlap, with the concept of subtyping polymorphism. Also this "dual view" stuff is explained quite poorly IMHO, in both articles. Having said that, I just discovered that there are two inheritance pages (OOP and Computer science) and frankly I lost interest. Good luck. PizzaMargherita 22:04, 25 October 2005 (UTC)
The introduction currently reads
However, as far as I understand, the term inheritance is also used within the framework of prototype-based programming where classes do not exist as independent entities. I think this usage should be reflected in the definition. — Tobias Bergemann 12:04, 6 June 2006 (UTC)
Inheritance (programming) currently redirects to class (computer science), and does so since its creation. Is there a specific reason for this? Otherwise, I would turn Inheritance (programming) into a redirect for Inheritance (computer science). — Tobias Bergemann 12:08, 6 June 2006 (UTC)
From the second paragraph: "Categorization is a powerful mechanism number of information processing...". This makes no sense to me, so there's an error in there somewhere. As I'm not quite sure what the writer was trying to say, rather than correcting it I'll just make a note here so that someone else can correct it.
In the Roles and inheritance section, what is meant with role (computer science)? -- Abdull ( talk) 15:53, 8 February 2008 (UTC)
Hello there. I suppose having examples with the text would certainly reinforce the ideas very nicely. This one seems to miss examples as is common with other computer science articles. Aijazbaig1 ( talk) 10:00, 15 July 2008 (UTC) Aijaz
1.Single inheritance 2.Multiple inheritance 3.Multilevel inheritance 4.Hybrid inheritance 5.Hirarchical inheritance —Preceding unsigned comment added by 122.168.54.186 ( talk) 13:21, 25 July 2008 (UTC)