C# Override MethodUse the override keyword on virtual base methods to specify which methods are called.
affects virtual method usage. Virtual methods are meant to be re-implemented in derived classes. The override keyword specifies that a method replaces its virtual base method.Keywords
illustrates the difference between an override method in a derived class, and a method that is not an override method. It does nothing useful but helps us learn about override methods.
Here: In the example, the class A is the base class. It has the virtual method Y.Virtual
And: In class B, we override Y. In class C, we implement Y but do not specify that it overrides the base method.Class
C# program that uses override modifier
public virtual void Y()
// Used when C is referenced through A.
class B : A
public override void Y()
// Used when B is referenced through A.
class C : A
public void Y() // Can be "new public void Y()"
// Not used when C is referenced through A.
static void Main()
// Reference B through A.
A ab = new B();
// Reference C through A.
A ac = new C();
The A type is used to reference the B and C types. When the A type references a B instance, the Y override from B is used. But when the A type references a C instance, the Y method from the base class A is used.
Note: The override modifier was not used. The C.Y method is local to the C type.
Warning: The C type generates a warning because C.Y hides A.Y. Your program is confusing and could be fixed.
Tip: If you want C.Y to really "hide" A.Y, you can use the new modifier, as in "new public void Y()" in the declaration.New
Summary. The override modifier is needed for implementing polymorphic behaviors in derived classes. You can re-implement a virtual base method. This causes the base implementation to be ignored in favor of the "override" method.
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to email@example.com.