When a base class contains a
I believe that everything about your concern is summarized by this sentence:
but the overridekeyword would have served as a good simple documentation and check that the interface methods are actually these that are marked as override.
Think about what's an interface, and what's an implementer. A class may or may not implement an interface, and can still implement a method with the same signature as an interface. What an interface does is the job of ensuring that some class has the required members to fullfil a contract.
For example, a class
Calculator may implement
Addition(int, int). But
Calculator couldn't implement
ICalculator and it could perform an
Addition(int, int) anyway.
How do you distinguish both cases? When to use
override or not.
Another point: it's nice to implement a class, and fulfill an interface, and stop fulfilling it by just removing it from the class signature after the inheritance colon.
In the other hand, think that the documentation you're looking for is the compiler error telling you that
Calculator implements interface
ICalculator but it doesn't declare and implement one or more members defined by
ICalculator. If the code compiles, you shouldn't care about if a member is of some or other interface. You know that some members are implementations of some interface, because your
Calculator signature would look like this:
public class Calculator : ICalculator.
Also, there's the case where a implementation member implements it to fulfill more than an interface. What's overriding your implementation? Isn't this more confusing than avoiding