<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>

You can seal individual methods to prevent them from being overridable:
```
```
public sealed override void Render()
{
    // Prepare the object for rendering        
    SpecialRender();
    // Do some cleanup    
}
```
```