Map
Index
Random
Help
Group
th

Group: type inheritance

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



Topic:
abstract functions
Topic:
abstract data type
Topic:
automatic selection of algorithm for abstract data type
Topic:
generic operations and polymorphism
Topic:
inheritance by delegation
Topic:
inheritance of properties
Topic:
object-oriented prototypes
Topic:
object-oriented templates and containers
Topic:
opaque and partially-opaque data types
Topic:
problems with type inheritance
Topic:
restricted and extended types
Topic:
type hierarchy
Topic:
type inheritance as reuse
Group:
data type
Group:
derived data types

Topic:
context
Topic:
dynamic vs. static data type
Topic:
global declarations and variables
Topic:
interface type
Topic:
names defined by context
Topic:
non-exclusive data type
Topic:
non-hierarchical classification and multiple classification
Topic:
object-oriented classes
Topic:
object-oriented data types
Topic:
object-oriented databases
Topic:
object-oriented fields
Topic:
object-oriented methods
Topic:
ref_any or Object data type
Topic:
taxonomy
Topic:
type conversion
Topic:
type parameter
Topic:
types of object-oriented classes

Summary

Every class is an object. Like all objects, classes belong to a class. This creates a class or type hierarchy. The super class of a class defines common procedures and variables which are inherited by instances of each sub-class. By changing a super-class the behavior of all sub-classes and their instances is automatically changed. In this way, type inheritance aids software maintenance and reuse. A simple implementation is restricted or extended data types. (cbb 1/90)
Subtopic: design for inheritance up

Quote: design for inheritance or prohibit it; inheritance commits forever design decisions about usage, protected methods, and other aspects of a class' inner workings [»blocJ_2001]
Quote: prefer interfaces over inheritance; unless designed for inheritance, avoid using methods that may be overridden [»blocJ_2001]

Subtopic: family resemblance up

Quote: a base class expresses a commonality of representation and calling interface
Quote: Kevo uses family resemblance instead of explicitly sharing object representations [»taivA11_1997]
Quote: Kevo creates objects by copying; it incrementally modifies objects with operations over modules

Subtopic: subclass as prefix up

Quote: classes are a remodeling of records; hierarchical tree structure; members are objects; the prefix of a subclass is the higher level class [»dahlOJ_1967]

Subtopic: isa or concept-oriented inheritance up

Quote: use public derivation (with implicit conversions to a base class) when derivation represents an "isa" relationship of a concept [»stroB_1991]
Quote: the concept-oriented view of inheritance is based on classification in taxonomic systems; models part of the real world [»winkJF8_1992]
Quote: use inheritance ("D is a kind of B") for well-defined relationships and membership ("D has a B") whenever multiple members are possible [»stroB_1991]
Quote: inheritance represents conceptual specialization of a model
Quote: A is a subtype of B if it can be used wherever B is used; A is a subclass of B if it inherits methods and variables [»rodrNR8_1993]
Quote: single inheritance works well if a derived class is more restrictive than the base class; can reuse unrestricted functions [»waldJ2_1992]
Quote: is-a inheritance in object-oriented programming has two very different interpretations [»winkJF8_1992]

Subtopic: inheritance for management of change up

Quote: inheritance is important for management of change, especially long-term [»wegnP10_1986]
Quote: use inheritance to isolate users from changes in the implementations of derived classes; e.g., use 'ival_box' to prompt user for an integer value [»koenA12_1995]
Quote: late binding and self-reference allow a programmer to change object behavior without access to its representation

Subtopic: subsumption in Modula's type system up

Quote: subsumption is the property that a value of type A is also a value of any supertype B with A<:B [»abadM_1996]
Quote: the product type is a covariant type operator on pairs of types; i.e., A x B <: A' x B' provided that A <: A' and B <: B' [»abadM_1996]
Quote: a function type is a contravariant type operator on pairs of types; i.e., A -> B <: A' -> B' provided that A' <: A and B <: B'; extends to multiple arguments [»abadM_1996]
Quote: methods vary contravariantly from classes to subclasses; despite debate to the contrary
Quote: an update type is an invariant type operator on pairs of types; i.e., if A * B means A and B may be updated, then A * B <: A' * B' provided A=A' and B=B' [»abadM_1996]
Quote: Modula-3 uses a simple, restricted subtype rule, if T <: U, then every value of T is a value of U; arrays and procedures must be basically the same [»cardL_1991]
Quote: allowing the subtype relation to extend to procedures contravariantly interacts badly with subtype rules that require a change of representation [»nelsG_1991]
Quote: Modula-3 does not extend the subtype relation to procedures, arrays, or sets

Subtopic: method inheritance up

Quote: the program-oriented view of inheritance is based on extension and substitutability; can replace an object with an object of any subclass [»winkJF8_1992]
Quote: separate inheritance of behavior (behaves-like) from inheritance of representation (subsumes)

Subtopic: invariant inheritance up

Quote: an object is a descendant of a prototype if it satisfies all of the inheritance constraints for fields, methods, and protocols

Subtopic: object reference up

Quote: a reference value refers to an object belonging to a class or its subclasses; the value 'none' is permissible for any reference [»dahlOJ_1967]

Subtopic: reference to superclass and subclass up

Quote: super-reference allows access to redefined properties without code duplication
Quote: a Smalltalk subclass can override a method in its superclass [»xlrg8_1981]
Quote: use 'super' to access overridden methods of a Smalltalk class [»xlrg8_1981]
Quote: Simula uses ';inner;' to show where subclass actions are embedded [»ichbJD_1972, OK]
Quote: a prefixed procedure embeds its code inside another procedure at 'inner'; like Simula's prefixed classes [»vaucJG10_1975, OK]


Group: type inheritance up

Topic: abstract functions (11 items)
Topic: abstract data type (64 items)
Topic: automatic selection of algorithm for abstract data type (7 items)
Topic: generic operations and polymorphism (67 items)
Topic: inheritance by delegation (8 items)
Topic: inheritance of properties (24 items)
Topic: object-oriented prototypes (39 items)
Topic: object-oriented templates and containers (27 items)
Topic: opaque and partially-opaque data types (14 items)
Topic: problems with type inheritance (20 items)
Topic: restricted and extended types (35 items)
Topic: type hierarchy (18 items)
Topic: type inheritance as reuse
(27 items)

Related Topics up

Group: data type   (34 topics, 730 quotes)
Group: derived data types   (9 topics, 119 quotes)

Topic: context (8 items)
Topic: dynamic vs. static data type (24 items)
Topic: global declarations and variables (33 items)
Topic: interface type (50 items)
Topic: names defined by context (36 items)
Topic: non-exclusive data type (16 items)
Topic: non-hierarchical classification and multiple classification (16 items)
Topic: object-oriented classes (67 items)
Topic: object-oriented data types (29 items)
Topic: object-oriented databases (15 items)
Topic: object-oriented fields (28 items)
Topic: object-oriented methods (42 items)
Topic: ref_any or Object data type (9 items)
Topic: taxonomy (16 items)
Topic: type conversion (33 items)
Topic: type parameter (34 items)
Topic: types of object-oriented classes
(18 items)


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