C#中 override和new关键字的区别

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:26:08
public class A
{
public virtual void MethodA()
{
}

public void MethodB()
{
}
}

public class B : A
{
public override void MethodA()
{
// base.MethodA();
}

public new void MethodB()
{
}
}

请详细说明这个程序中的区别,越细越好,谢谢,最好下午能有答案,谢谢了.

建一个控制台工程,复制一下代码:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
public class A
{
public virtual void MethodA()
{
Console.WriteLine("A.MethodA");
}

public void MethodB()
{
Console.WriteLine("A.MethodB");
}
}

public class B : A
{
public override void MethodA()
{
// base.MethodA();
Console.WriteLine("B.MethodA");
}

public new void MethodB()
{
Console.WriteLine("B.MethodB");
}
}

class Program
{
static void Main(string[] args)
{
A A1 = new B();
A1.MethodA();
A