If I have class B : A {}
I say that "Class B inherited class A" or "class B derives from class A".
However, if I instead have:
class B : ISomeInterface {}
it's wrong to say "B inherits ISomeInterface" -- the proper term is to say "B implements ISomeInterface".
But, say I have
interface ISomeInterface : ISomeOtherInterface {}
Now, it's still wrong to say "inherits", but it's now just as wrong to say "implements" since ISomeInterface doesn't implement anything.
So, what do you call that relationship?
I personally say "extends" and I thought the C# spec uses that word as well somewhere (I can't find it now, unfortunately) - but I remember Eric Lippert saying he wasn't keen on it, and wanted to change it for 4.0.
I think it's good, because it shows that you're extending the contract specified by the original interface.
EDIT: Having looked at the 3.0 spec...
The spec sort of side-steps the issue in section 13.2. It talks about the members being inherited from the base interfaces. It talks about one class extending another, but not interfaces
EDIT: In the C# 5 spec, section 13.1.4, it uses inherits:
An interface can inherit from zero or more interface types
So that's probably the best term to use.
I call it "extends".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With