Here, I created a interface IShow having one method Show(). We have two Class A, B inhrits from Interface IShow. In this Senario, how many way to programmer can show() method.

namespace ConsoleApplication

{

interface IShow

{

void Show();

}

class A : IShow

{

public virtual void Show()

{

Console.WriteLine("Base Class function");

}

public void Show1()

{

Console.WriteLine("Base Class function");

}

}

class B : A

{

public override void Show()

{

Console.WriteLine("Drived Class function");

}

public void Show2()

{

Console.WriteLine("Drived Class function");

}

static void Main(string[] args)

{


A A = new A();

A.Show();

B B = new B();

B.Show();

A A1 = new B();

A1.Show();

IShow S = new A();

S.Show();

IShow S1 = new B();

S1.Show();

Console.ReadKey(true);

}

}

}


Note : - Now you can see there is 5 way to call the Show method.

1. Create an object of A Class and Call the function

A A = new A();
A. Show();

2. Create an object of B Class and Call the function

B B = new B();
B.Show();

3. Create an A derived class object can be represented a its base class object. (Late Binding) and Call the function

A A1 = new B();
A1.Show();

4. Create an Interface reference pointer of A Class and Call the function

IShow S = new A();
S.Show();

5. Create an Interface reference pointer of B Class and Call the function

IShow S1 = new B();
S1.Show();

Output :

Img1.jpg