Используется когда имя поля производного класса совпадает с именем поля базового класса.
C#
class My1
{
public int x = 10;
}
class My2 : My1
{
new public int x = 25;
public void ShowValues()
{
base.x = 19;
Console.WriteLine("My1={0}, My2={1}", base.x, x);
}
}
class Program
{
static void Main(string[] args)
{
My2 my = new My2();
my.ShowValues();
// на экране увидим
// My1=19, My2=25
}
}
C#
class My1
{
public virtual void Display()
{
Console.WriteLine("Hello 1");
}
}
class My2 : My1
{
public override void Display()
{
base.Display();
Console.WriteLine("Hello 2");
}
}
class Program
{
static void Main(string[] args)
{
My2 test = new My2();
test.Display();
// на экране увидим
// Hello 1
// Hello 2
}
}
C#
class My1
{
public My1(int a)
{
Console.WriteLine("My1 " + a);
}
}
class My2 : My1
{
public My2() : base(10)
{
Console.WriteLine("My2");
}
}
class Program
{
static void Main(string[] args)
{
My2 test = new My2();
// на экране увидим
// My1 10
// My2
}
}