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]()