ABSTRACT
Object-oriented programming is a practical and useful programming methodology that encourages modular design and software reuse. Most object-oriented programming languages support data abstraction by preventing an object from being manipulated except via its defined external operations. In most languages, however, the introduction of inheritance severely compromises the benefits of this encapsulation. Furthermore, the use of inheritance itself is globally visible in most languages, so that changes to the inheritance hierarchy cannot be made safely. This paper examines the relationship between inheritance and encapsulation and develops requirements for full support of encapsulation with inheritance.
- Bobrow86.Danny Bobrow, et al. Common Loops: Merging Common Lisp and Object-Oriented Programming. Proc. ACM Conference on Object-Oriented Systems, Languages, and Applications. Portland, Oregon, Sept. 1986. Google ScholarDigital Library
- Borning81.Alan Borning. The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory. ACM Transactions on Programming Languages and Systems 3:4 (Oct. 1981), 353-387. Google ScholarDigital Library
- Borning82.Alan Borning and Daniel Ingalls. Multiple Ingeritance in Smalltalk-80. Proc. AAAI 1982, j234-237.Google Scholar
- Brachman85.Ronald J. Brachman. "I Lied about the Trees" - Or, Defaults and Definitions in Knowledge Representation. AI Magazine 6:3 (Fall 1985), 80-93.Google Scholar
- Canning85.Peter Canning. Personal communication.Google Scholar
- Cardelli84.Luca Cardelli. The Semantics of Multiple Inheritance. Proceedings of the Conference on the Semantics of Datatypes. Springer-Verlag Lecture Notes in Computer Science, June 1984, 51-66. Google ScholarDigital Library
- Cox84.Brad Cox. Message/Object Programming: An Evolutionary Change in Programming Technology. IEEE Software 1:1 (Jan. 1984), 50-61.Google ScholarDigital Library
- Dah166.O.-J. Dahl and K. Nygaard. Simula - An Algol-Based Simulation Language. Comm. ACM 9:9 (Sept. 1966), 671-678. Google ScholarDigital Library
- Goldberg83.Adele Goldberg and David Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, Massachusetts, 1983. Google ScholarDigital Library
- Moon86.David A. Moon. Object-Oriented Programming with Flavors. Proc. ACM Conference on Object-Oriented Systems, Languages, and Applications. Portland, Oregon, Sept. 1986. Google ScholarDigital Library
- Schaffert86.Craig Schaffert, et. al. An Introduction to trellis/Owl. Proc. ACM Conference on Object-Oriented Systems, Languages, and Applications. Portland, Oregon, Sept. 1986. Google ScholarDigital Library
- Snyder85a.Alan Snyder. Object-Oriented Programming for Common Lisp. Report ATC-85-1, Software Technology Laboratory, Hewlett-Packard Laboratories, Palo Alto, California, 1985.Google Scholar
- Snyder85b.Alan Snyder, Michael Creech, and James Kempf. A Common Lisp Objects Implementation Kernel. Report STL-85-08, Software Technology Laboratory, Hewlett-Packard Laboratories, Palo Alto, California, 1985.Google Scholar
- Steele84.Guy L. Steele, Jr. Common Lisp - The Language. Digital Press, 1984. Google ScholarDigital Library
- Stroustrup86.Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, Massachusetts, 1986. Google ScholarDigital Library
- Weinreb81.Daniel Weinreb and David Moon. Lisp Machine Manual. Symbolics, Inc., 1981. Google ScholarDigital Library
Index Terms
- Encapsulation and inheritance in object-oriented programming languages
Recommendations
Encapsulation and inheritance in object-oriented programming languages
Proceedings of the 1986 conference on Object-oriented programming systems, languages, and applicationsObject-oriented programming is a practical and useful programming methodology that encourages modular design and software reuse. Most object-oriented programming languages support data abstraction by preventing an object from being manipulated except ...
Object-oriented encapsulation for dynamically typed languages
OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsEncapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. This is surprising, considering that encapsulation is one of the ...
Object-oriented encapsulation for dynamically typed languages
OOPSLA '04Encapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. This is surprising, considering that encapsulation is one of the ...
Comments