Inheritance as Incremental Modification
\comment{See [WZ88].}
\sli{
Inheritance
-- incremental modification mechanism
- Result = Parent + Modifier\n
Example:
\nl
Independent attributes: M disjoint from P\n
Overlapping attributes: M overrules P
\nop{
Inheritance is incremental modification\n
Modifiability -- (constraints) \n
Granularity -- (classes, entities, attributes) \n
Multiplicity -- (multiple inheritance) \n
Quality -- (specifications or code)
}
}
\sli{
Self-reference
- bound to object (dynamic), not to textual module (static)
Dynamic binding
-
Attributes
- -- redefined -- in both P and M
- -- virtual -- not defined in P
- -- recursive -- defined in P, not in M
In a world without self-reference inheritance reduces to invocation !
\n
}