title: Can I prevent an inherited virtual method from being overridden in subclasses?
body: <p>I have some classes layed out like this</p>
  
  <pre><code>class A
  {
      public virtual void Render()
      {
      }
  }
  class B : A
  {
      public override void Render()
      {
          // Prepare the object for rendering
          SpecialRender();
          // Do some cleanup
      }
  
      protected virtual void SpecialRender()
      {
      }
  }
  class C : B
  {
      protected override void SpecialRender()
      {
          // Do some cool stuff
      }
  }
  </code></pre>
  
  <p>Is it possible to prevent the C class from overriding the Render method, without breaking the following code?</p>
  
  <pre><code>A obj = new C();
  obj.Render();       // calls B.Render -&gt; c.SpecialRender
  </code></pre>