C#虚メソッドのリロードnewとvirtual
3478 ワード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OverrideTest
{
class A
{
private String username;
public void method1()
{
Console.WriteLine("A.method1");
}
// ,
public virtual void method2()
{
Console.WriteLine("A.method2");
}
}
class B : A
{
// , , 。
public new void method1()
{
Console.WriteLine("B.method1");
}
// , , 。
public override void method2()
{
Console.WriteLine("B.method2");
}
}
class Test {
public static void Main() {
B b = new B();
A a = b;
a.method1();
a.method2();
b.method1();
b.method2();
Console.Read();
}
}
}
出力結果:
A.method1
B.method2
B.method1
B.method2