Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What do you call it when one interface "inherits" from another?

Tags:

c#

oop

interface

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?

like image 782
James Curran Avatar asked Apr 30 '09 14:04

James Curran


2 Answers

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.

like image 63
Jon Skeet Avatar answered Sep 23 '22 14:09

Jon Skeet


I call it "extends".

like image 39
Alex Martelli Avatar answered Sep 24 '22 14:09

Alex Martelli