This blog represents OverLoading And OverRiding functions.

We have Class A

class A

{

virtual public void add(int a)

{
Console.WriteLine(a);

//Console.WriteLine("pavan");

}

virtual public void add(int a, int b)

{

Console.WriteLine(a+b);

}

virtual public void add(int a, int b, int c)

{

Console.WriteLine(a + b + c);

}

}

We inherited Class A

class B:A

{
override public void add(int x)

{

Console.WriteLine(x);

}

override public void add(int i, int j)

{

Console.WriteLine(i + j);

}

override public void add(int a, int b, int c)

{

Console.WriteLine(a + b + (c=0));

}


Class B is inherited to Class C

class C:B

{
override public void add(int c)

{

Console.WriteLine(c);

}

override public void add(int a, int b)

{

Console.WriteLine(a + b);

//Console.WriteLine("basya");

}

override public void add(int a, int b, int c)

{

Console.WriteLine(a + b + c);

}

}

In MAIN function

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

A a = new A();

a.add(5);

a.add(4, 0);

a.add(3, 5, 7);


B b = new B();

b.add(9);

b.add(2, 4);

b.add(1, 2, 4);

C c = new C();

c.add(9);

c.add(8, 6);

c.add(12, 34, 12);

Console.ReadKey();

}

}

}

Following snapshot shows the output…

Image-1.jpg