Topic: problems with type inheritance

topics > computer science > programming > object-oriented programming > Group: type inheritance

interface type
limitations of hierarchical structures
non-hierarchical classification and multiple classification
problem of classifying information
structural equivalence vs. name equivalence of data types
type hierarchy
weak vs. strong type checking


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 up

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 up

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 up

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? up

Quote: although inheritance is central to object-oriented programming, researchers rarely agree on its meaning and usage [»taivA9_1996]

Subtopic: cancellation up

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 up

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 up

Quote: encapsulation and inheritance requires more testing because methods have more execution contexts; antidecomposition

Subtopic: which class is executed? up

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 up

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 up

Quote: IS-A links should be independent of inheritance; inheritance is a implementation issue

Related Topics up

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)

Updated barberCB 3/06
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.