The various terms defined within a discipline, software development for instance, are created to enable varied practioners from varied backgrounds to communicate clearly and unambiguously. Hence the terms must have clear and unambiguous meanings. Using terms to mean things other than that for which they are intended leads to ambiguity and confusion.
"Inherit", "derive", and "extend" are terms for the concept of a class having a base class whose members it will contain. A class may derive from a base class, it will inherit the members of that class, and it may extend that class.
The term for a class agreeing to fulfill the contract specified by an interface is "implement". If the definition of a class specifies that it will fulfill the contract of a given interface, it must implement all parts of that contract; it does not derive from the interface, it does not inherit anything from the interface, it does not extend the interface.
In Object Oriented Programming there are the concepts of IS_A and HAS_A; with interfaces we gain the concept of CAN_DO. Two totally unrelated classes that derive from very different base classes (such as Bird and Airplane) may both implement the IFly interface.
Derivation and inheritance specify a parent-child relationship; an interface can't have a class as a child, just as a dog can't have a cat as a child.
Also, interface implementation has nothing whatever to do with inheritance, claiming that it "simulates multiple-inheritance" diminishes the truly remarkable advance that interfaces represent.
Haha, I'm glad I cyber stalked you and found this little gem. I have no interest in resurrecting this conversation, but thought I'd drop by and say "hi". By the way, I always wondered what piebald meant and I finally googled it and found a hit that makes sense... your profile piebald is quite nice.