So don't be fooled by code that shows a concrete class that declares that it implements an interface, but doesn't implement the methods of the interface. Before you can tell whether the code is legal, you must know what the superclasses of this implementing class have declared. If any class in its inheritance tree has already provided concrete (i.e., non-abstract) method implementations, and has declared that it (the superclass) implements the interface, then the subclass is under no obligation to re-implement (override) those methods.
The line in bold is not correct. This line should be : and irrespective of it has declared that it (the superclass) implements the interface or not
Logically, the K&B statement is correct (as is yours), and it is not (IMO) even misleading...no reader would be tempted to believe that if a superclass does not declare that it implements an interface, then the subclass is obliged to provide implementations for the interface methods!