title: Why can't I override my interface methods?
body: <p>Let's say I have an interface as follows.</p>
  
  <pre><code>interface CardHolder : IEnumerable&lt;Card&gt;
  {
      /// &lt;summary&gt; ...
      void PutCard(Card card);
  
      /// &lt;summary&gt; ...
      void PutCards(Card[] card);
  
      /// Some more methods...
  }
  </code></pre>
  
  <p>I implement it as follows.</p>
  
  <pre><code>public class ArrayCardHolder : CardHolder
  {
      private Card[] _cards;
      private int _size = 0;
  
      public ArrayCardHolder(int capacity)
      {
          _cards = new Card[capacity];
      }
  
      public void PutCard(Card card)
      {
          if (IsFull())
              throw new Exception("This CardHolder is full. Capacity: " + Capacity());
  
          _cards[_size++] = card;
      }
  
      public void PutCards(Card[] cards)
      {
          if (_size + cards.Length &gt; _cards.Length)
              throw new Exception("Adding the Cards would exceed this CardHolder its capacity. Capacity: " + Capacity());
  
          for (int index = 0; index &lt; cards.Length; index++)
              _cards[_size++] = cards[index];
      }
      public IEnumerator&lt;Card&gt; GetEnumerator()
      {
          for (int index = 0; index &lt; _size; index++)
              yield return _cards[index];
      }
  
      System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
      {
          return this.GetEnumerator();
      }
  
      ///More methods.
  
  }
  </code></pre>
  
  <p>Why can I not use the <code>override</code> keyword in my <code>ArrayCardHolder</code> 
  (e.g. <code>public void override PutCard(Card card) { ///implementation }</code> to indicate that the method implements (i.e. overrides) the interface? In that case, the project will refuse to build.</p>
  
  <p>Why does it work however when overriding <code>ToString()</code>? And why doesn't it work when implementing <code>CompareTo(T t)</code> from <code>IComparable&lt;T&gt;</code>?</p>
  
  <p>What should I use instead? I'm worried that the documentation from the interface will not apply to my implementing methods. Such is the case in Java when the <code>@Override</code> annotation is used.</p>