Code:
class Baseclass
{
public void Fun()
{
Console.Write("Base class" + " ");
}
}
class Derived1 : Baseclass
{
new void Fun()
{
Console.Write("Derived1 class" + " ");
}
}
class Derived2 : Derived1
{
new void Fun()
{
Console.Write("Derived2 class" + " ");
}
}
As per the definition of the 'new' modifier : "new keyword explicitly hides a member that is inherited from a base class. ". Then when we call the method with new modifier in the derived class it should always give the output as "Derived2 class", But I am always getting the output "Base Class" in all the three conditions.
Baseclass d1 = new Derived1();
Baseclass d2 = new Derived2();
Baseclass b = new Baseclass();
d1.Fun();
d2.Fun();
b.Fun();
Can anyone please clear my doubt?