«новое» ключевое слово скрывает метод базового класса. Еще объект производного класса вызывает базовый метод. почему эта неоднозначность?
namespace Polymorphism
{
class Baseclass
{
public void Method1()
{
Console.WriteLine("Base");
}
}
class DerivedClass : Baseclass
{
public new void Method1() //new keyword is used.
{
Console.WriteLine("Derived");
}
}
class Program
{
static void Main(string[] args)
{
Baseclass obj = new DerivedClass(); //please explain this
obj.Method1(); // why is base method called
Console.Read();
}
}
}
Вывод: Base
Изображение показывает вывод