title: Static method, Abstract method, Interface method comparison?
body: <p>When I choose these methods? I can not decide which one I must prefer or when will i use one of them? which one give best performance? </p>
  
  <h2>First Type Usage</h2>
  
  <pre><code>public abstract class _AccessorForSQL
  {
     public virtual bool Save(string sp, ListDictionary ld, CommandType cmdType);
     public virtual bool Update();
     public virtual bool Delete();
     public virtual DataSet Select();
  }
  
  class GenAccessor : _AccessorForSQL
  {
      DataSet ds;
      DataTable dt;
      public override bool Save(string sp, ListDictionary ld, CommandType cmdType)
      {
      }
  
      public override bool Update()
      {
          return true;
      }
  
      public override bool Delete()
      {
          return true;
      }
  
      public override DataSet Select()
      {
          DataSet dst = new DataSet();
          return dst;
      }
  }
  </code></pre>
  
  <h2>Second Type Usage</h2>
  
  <p>Also I can write it below codes: </p>
  
  <pre><code>public class GenAccessor
  {
       public Static bool Save()
       { 
       }
  
       public Static bool Update()
       {
       }
  
       public Static bool Delete()
       {
       }
  }
  </code></pre>
  
  <h2>Third Type Usage</h2>
  
  <p>Also I can write it below codes:</p>
  
  <pre><code>public interface IAccessorForSQL
  {
      bool Delete();
      bool Save(string sp, ListDictionary ld, CommandType cmdType);
      DataSet Select();
      bool Update();
  }
  
  public class _AccessorForSQL : IAccessorForSQL
  {
      private DataSet ds;
      private DataTable dt;
  
      public virtual bool Save(string sp, ListDictionary ld, CommandType cmdType)
      {            
      }
  }
  </code></pre>
  
  <p>I can use first one  below usage:</p>
  
  <pre><code>GenAccessor gen = New GenAccessor();
  gen.Save();
  </code></pre>
  
  <p>I can use second one below usage:</p>
  
  <pre><code>GenAccessor.Save();
  </code></pre>
  
  <p>Which one do you prefer? When will I use them? which time i need override method? which time I need static method?</p>