Encapsulation, Delegation and Inheritance in Object-Oriented Languages

Mario Wolczko

IEE Software Engineering Journal, 7(2):95-101, March 1992.


For the reuse of software to become routine, it is essential that all modules have well-defined interfaces, and that all users of these modules respect these interfaces.

This paper examines the interfaces in object-oriented programs. It uses the notion of delegation, which can be thought of as underlying all inheritance mechanisms, to provide a framework for the examination of encapsulation mechanisms in object-oriented languages. Using delegation, the encapsulation mechanisms in class-based languages are reviewed, and suggestions are made as to how they might be improved.

Here's the paper.