thinking in java chapter 11 - Java Run-time type identification