Every class is extended from the Object class, so the "obj" object here that is typed to "Intf" is instantiated from the class that implements it. So a class (A) can access the methods and properties of a class (Object) that it extends. Thus you can access the methods of the Object class (i.e. toString(), equals())