Method Overloading and Overriding in C#
Method Overloading
Method Overloading means defining multiple methods with
the same name but with different parameters. By using Method Overloading, we can perform
different tasks with the same method name by passing different parameters.
Suppose, if we want to overload a method in c#, then we need to
define another method with the same name but with different signatures. Method
Overloading is also called as compile
time polymorphism or early binding.
Below is the code snippet for implementing a method overloading
in C#.
public class Calculate
{
public void
AddNumbers(int a, int b)
{
Console.WriteLine($"{a} + {b} = { a + b}");
}
public void
AddNumbers(int a, int b, int c)
{
Console.WriteLine($"{a} + {b} + {c} = {a + b + c}");
}
}
From the above code, we
created a “Calculate” class and defined two methods with same name (AddNumbers) but with
different input parameters to achieve method overloading.
Method Overloading real-life Example
The code below shows
the example of implementing a method overloading.
using System;
namespace CsharpnaijaTutorial
{
public class Calculate
{
public void
AddNumbers(int a, int b)
{
Console.WriteLine($"{a} + {b} = {a + b}");
}
public void
AddNumbers(int a, int b, int c)
{
Console.WriteLine($"{a} + {b} + {c} = {a + b + c}");
}
}
class Program
{
static void Main(string[] args)
{
Calculate calc = new Calculate();
calc.AddNumbers(1, 2);
calc.AddNumbers(1, 2, 3);
Console.WriteLine("\nPress Enter Key to Exit..");
Console.ReadLine();
}
}
}
Method Overriding
Method Overriding means override a base class method
in the derived class by creating a method with
the same name and signatures to perform a different task. The Method Overriding
in C# can be achieved by using override & virtual keywords along with the inheritance principle.
Suppose, if we want to change the behavior of the base class method in
a derived class, then we need to use method
overriding. The base class method which we want to override
in the derived class needs to be defined with virtual keyword and we need to use override keyword in derived class while
defining the method with the same name and parameters, that is only
we can override the base class method in a derived class.
The Method Overriding is also called as run time polymorphism or late binding.
The following code snippet shows how to
implement a method overriding in
C#.
// Base Class
public class Users
{
public virtual void GetInfo()
{
Console.WriteLine("Base Class");
}
}
// Derived
Class
public class Details : Users
{
public override void
GetInfo()
{
Console.WriteLine("Derived Class");
}
}
From the above code snippet, we can see
that we created atwo classes Users and Details
and the derived class (Details) is inheriting the properties from
base class (Users) and we are
overriding the base class method GetInfo in
derived class by creating a method with same name and parameters, this is
called a method overriding.
We defined a GetInfo method
with a virtual keyword
in the base class to allow derived class to override that method using
the override keyword.
As earlier stated, only the methods with a virtual keyword in the base class
are allowed to override in derived class using override keyword.
Method Overriding real-life Example
The following code snippets shows the
example of implementing a method overriding.
//using
System;
namespace CSharpnaijaTutorial
{
// Base Class
public class BaseClass
{
public virtual void GetInfo()
{
Console.WriteLine("Learn C# Tutorial");
}
}
// Derived
Class
public class DerivedClass : BaseClass
{
public override void
GetInfo()
{
Console.WriteLine("Welcome to Csharpnaija Blog");
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass derived = new DerivedClass();
derived.GetInfo();
BaseClass baseClass = new BaseClass();
baseClass.GetInfo();
Console.WriteLine("\nPress Enter Key to Exit..");
Console.ReadLine();
}
}
}
Thank you
References
1.
Tutlane
2.
Guru99
This is very productive ...... keep up the good work 💯
ReplyDelete