search

Method Overriding in C#

Sep 03, 2024 pm 03:13 PM
c#c# tutorial

Method Overriding is a commonly used functional operation in the C# programming, where there is a requirement for overriding the operations defined in the base class by making use of the derived class. For a successful overriding, the method is expected to be a static method, member classification and access modifiers should be of same type in both base and derived methods, and the overriding can be applied only on the derived class & not on the base class. The other names given for method overriding are run time polymorphism, dynamic polymorphism and late binding.

Method Overriding in C#

How to Use Overriding in C#?

Suppose, our application has the requirement to change the behavior of the base class method in a derived class, then we should go for method overriding. To achieve this, we need to create the method in the derived class with the same signature in the base class to perform a different task.  Before we learn how to use the overriding technique, we need to keep in mind the below points.

  • In C# programming, the Method Overriding is also called Run time polymorphism, Late binding, or Dynamic Polymorphism.
  • Only in the derived classes method overriding is possible. Because a method is overridden in the derived class from the base class.
  • The method should be a non-virtual or static method for an override.
  • Access level modifier of both the override method and the virtual method should be the same.

The method which is overridden by the override declaration is called the overridden base method. This will be present in the base class. The overridden base method can be either abstract, override or virtual. Fresh implementation called, override method is inherited from this base class.

We use different keywords for method overriding. They are,

1. Virtual Keyword

We the compiler encounters the virtual keyword in the program, it understands that this method can be overridden by any of its derived classes. The structure is as below.

public virtual int EnemyHealth()
{
Console.WriteLine("Enemy Health");
}

2. Override Keyword

This is present in the derived class. It tells the compiler that this method is overriding the method with the same name and signature in the base class.

public override int EnemyHealth ()
{
Console.WriteLine("Enemy 1");
}

Example

First, let us look into the example without using the Virtual and override keyword.

Code:

class Birds
{
public void Color( )
{
Console.WriteLine("Birds will have different Colors");
}
}
class Parrot:Birds
{
public void Color( )
{
Console.WriteLine("Parrot is Green");
}
}
class ExecutionClass
{
public static void Main( )
{
Birds object;
object = new Birds( );
object .Color( );
object = new Parrot( );
object.Color( );
}
}

Output:

Method Overriding in C#

In the above example, we created an object of Derived class Parrotand storing its reference in the reference variable object of the type Birds.

In the next step, using the reference variable object we invoke the function Color (). Since object contains a reference to an object of type Parrot, it is natural that we expect the function Color () of class Parrot to get executed. But we are wrong. The beauty of the programming won’t allow it to happen.

To our surprise, what is executed is the Color () method of Birds class. That’s because the function is invoked based on the type of reference and not to what the reference variable object refers to. Since the object is a reference of type Birds, the function Color () of class Birds will be invoked, no matter whom object refers to.

Now let’s rewrite the same program with virtual and override This time we will go step by step for a better understanding.

Create a base class with any name. Here I am using Birds. Write a method with the virtual keyword. This will be our overridden method which we will override in the inherited class. Inside the method write some message to print in the console.

class Birds
{
public virtual void Color( )
{
Console.WriteLine("Birds will have different Colors");
}
}

Now create one more class Parrot This time we will inherit it from the base class which we created earlier i.e. Birds. To inherit we use the ‘:’ symbol.

class Parrot: Birds

Here write a function with override keyword and write some message. Make sure that the method name and signature in the derived class match with the method name and signature in the base class.

public override void Color ( )
{
Console.WriteLine("Parrot is Green");
}

We need one more class to execute the functionality to check the overriding. Create a class with any name. Inside that write the Main function.

class ExecutionClass
{
public static void Main( )
{
}
}

Create an object of the parent class and trigger the function using the object of the class. This will invoke the Color method present in the Birds class.

Birds object;
object = new Birds( );
object .Color( );

Now create the object of the derived class and call the Color method. This will invoke the Color method of the Parrot class.

object = new Parrot( );
object.Color( );

Can you guess the output when we run the program? This is as shown below.

Output:

Method Overriding in C#

The Keywords override and virtual allows to invoke the base class and derived class methods separately at any point of time, even if the method names and signatures are the same.

Conclusion

In this article we understood the method overriding, need of the method overriding, real-world examples of the overriding principle, the way to achieve it, the necessity of using the virtual and override keywords and the example of overriding using the code. We can conclude that overriding is one of the useful features in polymorphism which we can change the behavior of the base class method in the derived class.

The above is the detailed content of Method Overriding in C#. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
The .NET Ecosystem: C#'s Role and BeyondThe .NET Ecosystem: C#'s Role and BeyondMay 03, 2025 am 12:04 AM

C# plays a core role in the .NET ecosystem and is the preferred language for developers. 1) C# provides efficient and easy-to-use programming methods, combining the advantages of C, C and Java. 2) Execute through .NET runtime (CLR) to ensure efficient cross-platform operation. 3) C# supports basic to advanced usage, such as LINQ and asynchronous programming. 4) Optimization and best practices include using StringBuilder and asynchronous programming to improve performance and maintainability.

C# as a .NET Language: The Foundation of the EcosystemC# as a .NET Language: The Foundation of the EcosystemMay 02, 2025 am 12:01 AM

C# is a programming language released by Microsoft in 2000, aiming to combine the power of C and the simplicity of Java. 1.C# is a type-safe, object-oriented programming language that supports encapsulation, inheritance and polymorphism. 2. The compilation process of C# converts the code into an intermediate language (IL), and then compiles it into machine code execution in the .NET runtime environment (CLR). 3. The basic usage of C# includes variable declarations, control flows and function definitions, while advanced usages cover asynchronous programming, LINQ and delegates, etc. 4. Common errors include type mismatch and null reference exceptions, which can be debugged through debugger, exception handling and logging. 5. Performance optimization suggestions include the use of LINQ, asynchronous programming, and improving code readability.

C# vs. .NET: Clarifying the Key Differences and SimilaritiesC# vs. .NET: Clarifying the Key Differences and SimilaritiesMay 01, 2025 am 12:12 AM

C# is a programming language, while .NET is a software framework. 1.C# is developed by Microsoft and is suitable for multi-platform development. 2..NET provides class libraries and runtime environments, and supports multilingual. The two work together to build modern applications.

Beyond the Hype: Assessing the Current Role of C# .NETBeyond the Hype: Assessing the Current Role of C# .NETApr 30, 2025 am 12:06 AM

C#.NET is a powerful development platform that combines the advantages of the C# language and .NET framework. 1) It is widely used in enterprise applications, web development, game development and mobile application development. 2) C# code is compiled into an intermediate language and is executed by the .NET runtime environment, supporting garbage collection, type safety and LINQ queries. 3) Examples of usage include basic console output and advanced LINQ queries. 4) Common errors such as empty references and type conversion errors can be solved through debuggers and logging. 5) Performance optimization suggestions include asynchronous programming and optimization of LINQ queries. 6) Despite the competition, C#.NET maintains its important position through continuous innovation.

The Future of C# .NET: Trends and OpportunitiesThe Future of C# .NET: Trends and OpportunitiesApr 29, 2025 am 12:02 AM

The future trends of C#.NET are mainly focused on three aspects: cloud computing, microservices, AI and machine learning integration, and cross-platform development. 1) Cloud computing and microservices: C#.NET optimizes cloud environment performance through the Azure platform and supports the construction of an efficient microservice architecture. 2) Integration of AI and machine learning: With the help of the ML.NET library, C# developers can embed machine learning models in their applications to promote the development of intelligent applications. 3) Cross-platform development: Through .NETCore and .NET5, C# applications can run on Windows, Linux and macOS, expanding the deployment scope.

C# .NET Development Today: Trends and Best PracticesC# .NET Development Today: Trends and Best PracticesApr 28, 2025 am 12:25 AM

The latest developments and best practices in C#.NET development include: 1. Asynchronous programming improves application responsiveness, and simplifies non-blocking code using async and await keywords; 2. LINQ provides powerful query functions, efficiently manipulating data through delayed execution and expression trees; 3. Performance optimization suggestions include using asynchronous programming, optimizing LINQ queries, rationally managing memory, improving code readability and maintenance, and writing unit tests.

C# .NET: Building Applications with the .NET EcosystemC# .NET: Building Applications with the .NET EcosystemApr 27, 2025 am 12:12 AM

How to build applications using .NET? Building applications using .NET can be achieved through the following steps: 1) Understand the basics of .NET, including C# language and cross-platform development support; 2) Learn core concepts such as components and working principles of the .NET ecosystem; 3) Master basic and advanced usage, from simple console applications to complex WebAPIs and database operations; 4) Be familiar with common errors and debugging techniques, such as configuration and database connection issues; 5) Application performance optimization and best practices, such as asynchronous programming and caching.

C# as a Versatile .NET Language: Applications and ExamplesC# as a Versatile .NET Language: Applications and ExamplesApr 26, 2025 am 12:26 AM

C# is widely used in enterprise-level applications, game development, mobile applications and web development. 1) In enterprise-level applications, C# is often used for ASP.NETCore to develop WebAPI. 2) In game development, C# is combined with the Unity engine to realize role control and other functions. 3) C# supports polymorphism and asynchronous programming to improve code flexibility and application performance.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Atom editor mac version download

Atom editor mac version download

The most popular open source editor