I\'m reading this: http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.20.2
They say:
Consider the example program
Because of the inheritance tree. if A inherited from B then you can write A instance of B
Integer i = 3; System.out.println(i instanceof String); // compile time error System.out.println(i instanceof Number); // true System.out.println(i instanceof Object); // true