|
ABSTRACT
One of the most intriguing—and at the same time most problematic—notions in object-oriented programing is inheritance. Inheritance is commonly regarded as the feature that distinguishes object-oriented programming from other modern programming paradigms, but researchers rarely agree on its meaning and usage. Yet inheritance of often hailed as a solution to many problems hampering software development, and many of the alleged benefits of object-oriented programming, such as improved conceptual modeling and reusability, are largely credited to it. This article aims at a comprehensive understanding of inheritance, examining its usage, surveying its varieties, and presenting a simple taxonomy of mechanisms that can be seen as underlying different inheritance models.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
BLASCHEK, G. 1991. Type-safe OOP with prototypes: the concepts of Omega. Structured Program. 12, 12 (Dec.) 1-9.
|
| |
5
|
|
 |
6
|
Daniel G. Bobrow , Kenneth Kahn , Gregor Kiczales , Larry Masinter , Mark Stefik , Frank Zdybel, CommonLoops: merging Lisp and object-oriented programming, Conference proceedings on Object-oriented programming systems, languages and applications, p.17-29, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
7
|
BORGIDA, A., MYLOPOULOS, J. AND WONG, H. K. T. 1984. Generalization/specialization as a basis for software specification. In On Conceptual Modelling: Perspectives from Artificial Intelligence, Databases, and Programming Languages, M.L. Brodie, J. Mylopoulos, J.W. Schmidt, Eds. Springer-Verlag, 87-117.
|
| |
8
|
|
| |
9
|
|
| |
10
|
|
 |
11
|
|
| |
12
|
BRACHA, G. AND LINDSTROM, G. 1992. Modularity meets inheritance. In Proceedings of the 1992 International Conference on Computer Languages (Oakland, California, April 20-23), IEEE Computer Society Press, 282-290.
|
| |
13
|
BRACHMAN, R. 1983. What Is-a is and isn't? IEEE Comput. 16, 10 (Oct.) 30-36.
|
| |
14
|
BRACHMAN, R. 1985. I lied about the trees--or, defaults and definitions in knowledge representation. AI Magazine 6, 3 (Fall) 80-93.
|
| |
15
|
|
| |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
|
 |
23
|
|
 |
24
|
|
| |
25
|
|
| |
26
|
DAHL, O-J., MYHRHAUG, B. AND NYGAARD, K. 1968. SIMULA 67 common base language. Tech. Rep., Norwegian Computing Center, Oslo, May.
|
 |
27
|
|
| |
28
|
|
 |
29
|
|
 |
30
|
|
| |
31
|
|
| |
32
|
|
| |
33
|
|
| |
34
|
|
 |
35
|
|
| |
36
|
|
 |
37
|
|
 |
38
|
|
| |
39
|
|
 |
40
|
|
| |
41
|
|
 |
42
|
Bent Bruun Kristensen , Ole Lehrmann Madsen , Birger Møller-Pedersen , Kristen Nygaard, Abstraction mechanisms in the BETA programming language, Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.285-298, January 24-26, 1983, Austin, Texas
[doi> 10.1145/567067.567094]
|
| |
43
|
|
| |
44
|
|
 |
45
|
|
 |
46
|
|
 |
47
|
|
| |
48
|
|
 |
49
|
Wilf R. LaLonde , Dave A. Thomas , John R. Pugh, An exemplar based Smalltalk, Conference proceedings on Object-oriented programming systems, languages and applications, p.322-330, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
50
|
Kevin J. Lang , Barak A. Pearlmutter, Oaklisp: an object-oriented scheme with first class types, Conference proceedings on Object-oriented programming systems, languages and applications, p.30-37, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
51
|
|
| |
52
|
|
 |
53
|
|
 |
54
|
|
| |
55
|
|
| |
56
|
|
 |
57
|
|
 |
58
|
|
| |
59
|
MAGNUSSON, B. 1991. Implementation of inheritance in Simula. Personal communication.
|
| |
60
|
|
| |
61
|
|
| |
62
|
|
 |
63
|
|
 |
64
|
|
 |
65
|
|
| |
66
|
PALSBERG, J. AND SCHWARTZBACH, M.I. 1991. Static typing for object-oriented programming. Aarhus University Tech. Rep. DAIMI PB-355, Denmark, June.
|
 |
67
|
|
 |
68
|
|
| |
69
|
PLATO. The Republic. Kustannusosakeyhti~ Otava, Keuruu, Finland. (Finnish translation, 1981).
|
| |
70
|
|
| |
71
|
|
 |
72
|
|
| |
73
|
James Rumbaugh , Michael Blaha , William Premerlani , Frederick Eddy , William Lorensen, Object-oriented modeling and design, Prentice-Hall, Inc., Upper Saddle River, NJ, 1991
|
| |
74
|
SAKKINEN, M. 1989. Disciplined inheritance. In ECOOP'89: Proceedings of the Third European Conference on Object-Oriented Programming (Nottingham, England, July 10-14). The British Computer Society Workshop Series, Cambridge University Press, 39-56.
|
 |
75
|
Craig Schaffert , Topher Cooper , Bruce Bullis , Mike Kilian , Carrie Wilpolt, An introduction to Trellis/Owl, Conference proceedings on Object-oriented programming systems, languages and applications, p.9-16, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
76
|
|
 |
77
|
|
 |
78
|
|
| |
79
|
SMITH, D. C. P. AND SMITH, J. M. 1980. Conceptual database design. Also in Tutorial on Software Design Techniques, 4th ed., Freeman, P., Wasserman, A. I. Eds. IEEE Computer Society Press, 1983, 437-460.
|
 |
80
|
|
 |
81
|
|
| |
82
|
|
| |
83
|
|
 |
84
|
|
 |
85
|
Lynn Andrea Stein , Henry Lieberman , David Ungar, A shared view of sharing: the treaty of Orlando, Object-oriented concepts, databases, and applications, ACM Press, New York, NY, 1989
[doi> 10.1145/63320.66470]
|
| |
86
|
STEIN, L.A. 1989. Towards a unified method of sharing in object-oriented programming. In Workshop on Inheritance Hierarchies in Knowledge Representation and Programming (Viareggio, Italy, Feb. 6-8).
|
| |
87
|
|
| |
88
|
TAIVALSAARI, A. 1993. Object-oriented programming with modes. J. Object-Oriented Program. 6, 3 (Jun.) 25-32.
|
| |
89
|
TAWALSAARI, A. 1993. A critical view of inheritance and reusability in object-oriented programming. Ph.D. thesis, Jyv~iskyl~i Studies in Computer Science, Economics and Statistics 23, Univ. of Jyv~iskyl~i, Finland, Dec. 276 pages.
|
 |
90
|
|
| |
91
|
|
 |
92
|
|
 |
93
|
|
| |
94
|
|
| |
95
|
|
 |
96
|
|
| |
97
|
|
| |
98
|
|
CITED BY 39
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Haibin Zhu , MengChu Zhou, Methodology first and language second: a way to teach object-oriented programming, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Simon Holland, Reflective composition: the declarative composition of roles to unify objects, roles, and aspects, Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 24-28, 2004, Vancouver, BC, CANADA
|
|
|
|
|
|
Emerson R. Murphy-Hill , Andrew P. Black, Traits: experience with a language feature, Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 24-28, 2004, Vancouver, BC, CANADA
|
|
|
|
|
|
|
|
|
|
|
|
James H. Cross, II , T. Dean Hendrix , David A. Umphress , Larry A. Barowski, Exploring accessibility and visibility relationships in java, Proceedings of the 13th annual conference on Innovation and technology in computer science education, June 30-July 02, 2008, Madrid, Spain
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|