Johns Hopkins University: Scott F. Smith's "Principles of Programming Languages"
Read Chapter 6 on Type Systems for a discussion of statically-typed object-oriented languages and the similarities and differences between C++ and Java implementations of object system.
Click http://web.archive.org/web/20170328195634/https://pl.cs.jhu.edu/pl/book/dist/book/book.pdf link to open resource.