While there are many books on particular languages, especially C++ and Java, they tend to concentrate on how to program using that language and their treatment of the semantics is highly languages-specific. A more wide-ranging comparison of the various languages and their underlying concepts is lacking. The Interpretation of Object-Oriented Programming Languages attempts to provides a comprehensive treatment of the main approaches to object-oriented languages, class-based, prototype, and actor languages. This book will be useful for final year undergraduates/first year postgraduates studying object-oriented programming, as well as research students and others requiring a detailed account of object-oriented programming languages and their central concepts.
This is certainly better than Budd's An Introduction to Object-Oriented Programming as an overview and explication of object-oriented features, but it is still lacking. The presentation is a bit more formal but it falls into the same trap as so much literature on object-orientation: presenting OO as the paradigm for highly flexible programming, contrasting it with "traditional" models (meaning plain procedural programming) and treating polymorphism as something primarily and intrinsically linked to OO. It's not as bad in this respect as some of the worst offenders: other forms of polymorphism are presented and functional programming is treated to some extent, but the presentations of these are okay at best. I personally like OO quite a lot but would like to see more serious presentations, treating it the way it deserves: as one computational model our of many. Other annoyances where the many typos and typographical mishaps sometimes causing some confusion and requiring a closer look with some creative interpretation to understand what was supposed to be written on the page. A good book, but nothing great. I wonder if there are any serious, well-written presentations of object-orientated features at an introductory, non-formal level?
Anyway, I'm off to read Abadi's and Cardelli's A Theory of Objects now, a book I've started but put to the side previously and one which gives a much more formal exposition of object-oriented languages in the form of formal calculi and which also, as I recall, gives a very good, informal overview of the features in its introductory part.