コードのこれら2つの部分の主な違いは何か、なぜ、またはいつ基本クラスへの参照を使用する必要があるのか を誰かが説明できますか?私にとっては同じことです。
internal class MyBaseClass
{
public string Field = "Hello";
public void Print()
{
Console.WriteLine("This is the base class.");
}
}
internal class MyDerivedClass : MyBaseClass
{
public string FieldDerived = "Coucou";
public new void Print()
{
Console.WriteLine("This is the derived class.");
}
public new void Print2()
{
Console.WriteLine("This is the derived class.");
}
}
internal class Program
{
private static void Main()
{
MyDerivedClass derived = new MyDerivedClass();
MyBaseClass mybc = (MyBaseClass) derived;
// ↑
// Cast to base clas
}
}
そして、これは私にとってまったく同じことをするコードです:
internal class MyBaseClass
{
public string Field = "Hello";
public void Print()
{
Console.WriteLine("This is the base class.");
}
}
internal class MyDerivedClass : MyBaseClass
{
public string FieldDerived = "Coucou";
public new void Print()
{
Console.WriteLine("This is the derived class.");
}
public new void Print2()
{
Console.WriteLine("This is the derived class.");
}
}
internal class Program
{
private static void Main()
{
MyDerivedClass derived = new MyDerivedClass();
MyBaseClass mybc = new MyBaseClass();
// ↑
// Use the base class
}
}