Providing a foundation in data abstraction, this book emphasizes the distinction between specification and implementation as the foundation for an object-oriented approach. The authors cover key object-oriented concepts, including encapsulation, inheritance and polymorphism.