Override und New

Das Schlüsselwort new verwendet man wenn die Methode keinen Bezug zur Methode der Basisklasse hat.

  • virtual ermöglicht die Definition einer Methode als überschreibbar.
  • Wird eine virtuelle Methode tatsächlich in einer abgeleiteten Klasse überschrieben, muss dort zwingend das override Schlüsselwort angegeben werden.
  • Soll eine Methode überschrieben werden die nicht als virtuell markiert wurde, muss an der Stelle von override das new-Schlüsselwort angegeben werden.

//hides the base class 
public new void function() {}
// overrides the base class
public override void function() {}

MSDN: Knowing When to Use Override and New Keywords