例子 解说 new override

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:15:45
using System;
namespace hello
{
class Program
{

static void Main(string[] args)
{

contact ct1 = new class1();

contact ct2 = new class2();

ct1.prinf();

ct2.prinf();
Console.ReadLine();

}

}

abstract public class contact
{

public virtual void prinf()
{

Console.WriteLine("这是虚方法");

}

}

public class class1 : contact
{

public override void prinf()
{

Console.WriteLine("这是新的方法");

}

}

public class class2 : contact
{

public new void prinf()
{

Console.WriteLine("这是另一个新的方法&q

new关键字是隐藏基类里的方法的定义,要不基类有,子类也有,不混淆了吗?但是编译还是可以通过的,但会有编译警告.使用new就会隐藏这个警告,这样的隐藏.
但是只要不是重写(override0基类虚方法,就会执行基类的方法,所以还是执行了.