> Only methods explicity declared as virtual can be overriden
You can with "new", no?
public class Foo
{
public void Say() { Console.WriteLine("Foo!"); }
public void Think() { Console.WriteLine("I;m thinkin about thos beans");
}
public class Bar : Foo
{
new public void Say() { Console.WriteLine("Actually, Bar!"); }
}
So with Bar we have inherited Think(), but have overridden Say(). Ok technically the MSDN docs will say that we've "hidden" the inherited method Say(), but the effect here is that we've overridden something not marked "virtual"edit: Oops yeah I'm talking rubbish, see replies for more info :D