This book describes the design goals and language features of object-oriented languages without viewing them from the perspective of any particular language. Covers key object-oriented principles — date abstraction, inheritance, polymorphism, and dynamic binding in a language independent discussion that focuses on the purpose of each feature.