Introduction
Polymorphism
Polymorphism is an concept of OOPS. Polymorphism in Latin word which
describes 'poly' means many
'morphs' means forms.
We can divide the polymorphism into 2 types.
1. Static polymorphism (complied time)
2. Dynamic polymorphism (run time)
Static polymorphism
In this the binding is taken place in compile time. The different types of
static polymorphism
are:-
a) Function Overloading
b) Operator
Overloading
c) Constructor Overloading
Dynamic polymorphism
In this the binding that takes place at run-time. The difference types of
dynamic polymorphism
are:-
a) Function Overriding
b) Abstract Class
Operator overloading
It is the concept of oops as we know that in object-oriented concept each
and every thing deals with classes and objects. Keyword class contains
the definition of two operators i.e. Assignment operator (=) and
Ampersand (&) by default.We can perform the( +, -, *, /) on a
string ,integer etc while talking with oops concept (C#) we cant directly
perform (=,-,*,/)arithmetic operations between two objects. If we want to train
ours class other than two operators than we need to do Operator
Overloading .
Example of Operator Overloading
// FIND THE SUM OF TWO COMPLEX NO. BY OPERATOR OVERLOADING
using System;
public
class ComplexNum
{
public int
real;
public int
imaginary;
public ComplexNum(int
real, int imaginary)
{
this.real = real;
this.imaginary = imaginary;
}
// Syntax of
Operator Overloading
public
static ComplexNum
operator +(ComplexNum
n1, ComplexNum n2)
{
return new
ComplexNum(n1.real + n2.real, n1.imaginary +
n2.imaginary);
}
// Override the ToString method to display an
complex number in the suitable format:
public
override string ToString()
{
return (String.Format("{0}
+ {1}i", real, imaginary));
}
public static
void Main()
{
ComplexNum cnum1 =
new ComplexNum(4,
5);
ComplexNum cnum2 =
new ComplexNum(5,
6);
// Add two Complex objects (num1 and num2)
through the
ComplexNum addition = cnum1 +
cnum2;
// Print the numbers
Console.WriteLine("First
complex number: {0}", cnum1);
Console.WriteLine("Second
complex number: {0}", cnum2);
Console.WriteLine("RESULT
:The sum of the two numbers: {0}", addition);
// Hault the output screen
Console.Read();
}
}
Output


PRAVEEN SAINIPosted Oct 20, 2011, 5:56 AM
Hi buddy... I have read ur operator overloading blog. This is very helpful in understanding the real meaning of operrator overloading. This is also useful in understanding the topic with the scenario.... Please keep it up. Can you please help me in Contructors, type of constructors.....
Amit KumarPosted Oct 20, 2011, 5:44 AM
Its great,I like this concept of operator overloading