0
私はJavaで既に持っているコードのためにC#で同等のコードを作ろうとしています。 Javaコードは次のとおりです。C#の子クラスからの親クラスのメソッドへのアクセス
class Test
{
public static void main (String args[])
{
C1 o1 = new C1();
C2 o2 = new C2();
System.out.println(o1.m1() + " " + o1.m2() + " " + o2.m1() + " " + o2.m2());
}
}
class C1
{
void C1() {}
int m1() { return 1; }
int m2() { return m1(); }
}
class C2 extends C1
{
void C2() {}
int m1() { return 2; }
}
これは、出力1 1 2 2.を与えます。次に、このコードをC#用に記述しました。
class Program
{
static void Main(string[] args)
{
C1 o1 = new C1();
C2 o2 = new C2();
Console.WriteLine(o1.M1()+ " "+ o1.M2()+ " "+ o2.M1()+ " "+ ((C2)o2).M2()+ "\n");
Console.ReadKey();
}
}
public class C1
{
public C1()
{
}
public int M1()
{
return 1;
}
public int M2()
{
return M1();
}
}
public class C2:C1
{
public C2()
{
}
public int M1()
{
return 2;
}
}
これは、しかしながら、C2の遺伝M2としてプリント1 1 2 1 はC1でM1を呼び出し、C2ではないM1。マイナーな変更を加えてC2でM1を呼び出すにはどうすればいいですか?
https://msdn.microsoft.com/en-us/library/9fkccyh4.aspx – Orangesandlemons