Am 20.06.2005 um 20:05 Uhr schrieb Thomas Davie:
No subclass should ever add functionality, because this breaks the "is a" relationsip...
I'm sorry, but this is utter - um... - nonsense.
Subclasses *refine* the descriptions of their superclasses. They always do so by *adding* functionality.
A such refined class usually restricts the set of objects that adheres to the class, because those objects need to be able to understand *more* messages than objects of the superclass.
NSOutlineView being a subclass of NSTableView is a perfect example.
And, of course, an outline view *is* a table view. It has rows and columns. But a table view is *not* an outline view, since it can't collapse it's rows.