Home
C#
override Method
Updated Oct 27, 2022
Dot Net Perls
Override. This keyword from the C# programming language affects virtual method usage. Virtual methods are meant to be reimplemented in derived classes.
Replacement. The override keyword specifies that a method replaces its virtual base method. We use override in derived classes to replace inherited methods.
This program illustrates the difference between an override method in a derived class, and a method that is not an override method. It 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
using System; class A { public virtual void Y() { // Used when C is referenced through A. Console.WriteLine("A.Y"); } } class B : A { public override void Y() { // Used when B is referenced through A. Console.WriteLine("B.Y"); } } class C : A { public void Y() // Can be "new public void Y()" { // Not used when C is referenced through A. Console.WriteLine("C.Y"); } } class Program { static void Main() { // Reference B through A. A ab = new B(); ab.Y(); // Reference C through A. A ac = new C(); ac.Y(); } }
B.Y A.Y
Notes, example. 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
A summary. The C# override modifier is needed for implementing polymorphic behaviors in derived classes. It is used in class inheritance.
Details, virtual. You can reimplement a virtual base method. This causes the base implementation to be ignored in favor of the "override" method.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
No updates found for this page.
Home
Changes
© 2007-2025 Sam Allen