This booklet is out of date today interface may have implementation.
Inheritance of type is to take over the contracts that a type offers, ie to have guaranteed all the methods with your signatures of a type in a new type. The type inherits what has already been declared in another type.
Implementation inheritance takes the algorithm, the code it executes in the methods, and can even receive implementation details like the type fields. Interface has never been.
Implementation inheritance has to do with object orientation. Type inheritance has to do with static typing, or at least safe typing.
This can be useful.
Related (or duplicate):In object orientation, why interfaces are useful?
– user28595
Related (or duplicate): What is an interface?
– user28595