Topic: interface type
Topic: limitations of hierarchical structures
Topic: non-hierarchical classification and multiple classification
Topic: problem of classifying information
Topic: structural equivalence vs. name equivalence of data types
Topic: taxonomy
Topic: type hierarchy
Topic: weak vs. strong type checking
| |
Summary
Inheritance does not hide information completely. Descendants of a class can access the implementation of a superclass. As a class hierarchy develops, information and functionality tends to move up the hierarchy where it is widely available. Without care, inheritance can increase the complexity of an application. (cbb 4/ 01)
Subtopic: avoid inheritance
Quote: be careful of making members virtual; they cause subtle and complex observable behaviors and subclass interactions [»cwalK_2006]
| Quote: class inheritance doesn't preserve encapsulation because functions are scattered among classes with many interdependencies [»wyboN4_1990]
| Quote: limit application developers to aggregation and encapsulation; only experts should subclass via inheritance and additive specialization
| Quote: descendants of a class gains access to its implementation; may redefine as needed [»meyeB9_1990]
| Quote: components involved in inheritance had six times more defects than those without [»hattL5_1998]
| Quote: implementation inheritance is a bad idea that binds implementations together so that all classes must be understood together; like 'goto' statements [»oustJK3_1998]
| Quote: if add or modify a subclass must retest all inherited methods; they have a new context [»perrDE1_1990]
| Quote: inheritance hides the effect of change through a complicated, inheritance model; non-inheritance is more direct [»perrDE1_1990]
| Subtopic: inheritance not natural
Quote: in paper solutions, entities have state and they respond to requests for action; but no use of inheritance or polymorphism; object-oriented is not natural [»paneJF2_2001]
| Quote: the use of inheritance for conceptual specialization is rarely realized [»taivA9_1996]
| Quote: rich subclassing of objects may be undesirable; users don't need the derivation and most find the process frustrating [»pausR10_1992]
| Subtopic: information moves to root
Quote: with single inheritance, shared information tends to move towards the root of the tree; root classes become a global name space and a muddle [»stroB_1991]
| Quote: functional decomposition is insufficient for data abstraction because interesting data needs to be global; like single inheritance [»stroB_1991]
| Subtopic: what is inheritance?
Quote: although inheritance is central to object-oriented programming, researchers rarely agree on its meaning and usage [»taivA9_1996]
| Subtopic: cancellation
Quote: with cancellation, Clyde the elephant could be just about anything, including a giraffe; the Elephant node is just a collection of properties [»bracRJ10_1983]
| Subtopic: templates and inheritance
Quote: templates and type inheritance need each other. Without templates, derivation of similar class is tedious; without inheritance, templates lead to massive replication
| Subtopic: execution contexts
Quote: encapsulation and inheritance requires more testing because methods have more execution contexts; antidecomposition
| Subtopic: which class is executed?
Quote: Smalltalk's inheritance mechanism makes it difficult to find which method is executed, especially if the receiver's class is unknown [»nielJ5_1989, OK]
| Subtopic: different types with same operations
Quote: use properties to distinguish types that have the same operations; e.g., the property 'LIFO' for type 'stack'; simulate with dummy functions [»rodrNR8_1993]
| Subtopic: inheritance as implementation
Quote: IS-A links should be independent of inheritance; inheritance is a implementation issue [»bracRJ10_1983]
|
Related Topics
Topic: interface type (50 items)
Topic: limitations of hierarchical structures (10 items)
Topic: non-hierarchical classification and multiple classification (16 items)
Topic: problem of classifying information (42 items)
Topic: structural equivalence vs. name equivalence of data types (30 items)
Topic: taxonomy (16 items)
Topic: type hierarchy (18 items)
Topic: weak vs. strong type checking (42 items)
|