Scenario 1>
//**************************Given**************************************
public class MyBaseClass
{
public void methodA()
{
Console.WriteLine("MyBaseClass: methodA");
}
public virtual void methodB()
{
Console.WriteLine("MyBaseClass: methodB");
}
}
public class MyOverloadClass : MyBaseClass
{
public new void methodA()
{
Console.WriteLine("MyOverloadClass: methodA");
}
public override void methodB()
{
Console.WriteLine("MyOverloadClass: methodB");
}
}
public class MyOverloadClass2 : MyOverloadClass
{
public void methodA()
{
Console.WriteLine("MyOverloadClass2: methodA");
}
public new void methodB()
{
Console.WriteLine("MyOverloadClass2: methodB");
}
}
//************************ Question ***************************
MyBaseClass obj = new MyOverloadClass2();
obj.methodA();
obj.methodB();
//*********************** output *****************************
MyBaseClass: methodA
MyOverloadClass: methodB
//**************************Given**************************************
public class MyBaseClass
{
public void methodA()
{
Console.WriteLine("MyBaseClass: methodA");
}
public virtual void methodB()
{
Console.WriteLine("MyBaseClass: methodB");
}
}
public class MyOverloadClass : MyBaseClass
{
public new void methodA()
{
Console.WriteLine("MyOverloadClass: methodA");
}
public override void methodB()
{
Console.WriteLine("MyOverloadClass: methodB");
}
}
public class MyOverloadClass2 : MyOverloadClass
{
public void methodA()
{
Console.WriteLine("MyOverloadClass2: methodA");
}
public new void methodB()
{
Console.WriteLine("MyOverloadClass2: methodB");
}
}
//************************ Question ***************************
MyBaseClass obj = new MyOverloadClass2();
obj.methodA();
obj.methodB();
//*********************** output *****************************
MyBaseClass: methodA
MyOverloadClass: methodB