overwrite virtual new 三者的区别

来源:互联网 发布:c语言关键字34 编辑:程序博客网 时间:2024/06/04 18:14
overwrite
virtual
new
三者的区别:
overwrite 在原来的内存空间上重新写。
virtual  对所声明的接口进行虚拟化(默认)即,void。
new     创建新的内存空间。
事不易迟看看下面例子就可以进一步一了解三者的区别了:
using System;
abstract public class contact
{
      public virtual string prinf()
      {
          return ("这是虚方法");
      }
}
public class class1:contact
{
       public override string prinf()
       {
              return ("这是新的方法");   
        }
}
public class class2:contact
{
       public new string prinf()
       {
              return ("这是另一个新的方法");   
        }
}
public class text
{
        public static void Main()
        {
              contact [] contacts=new contact [2];
              contacts[0]=new class1;
              contacts[1]=new class2;
              foreach(contact ct in contacts)
              {
                    Console.WriteLine(ct.printf);
               }
         }
}
最后我们看到的结果是
这是新的方法
这是虚方法