文档库 最新最全的文档下载
当前位置:文档库 › new与virtual的区别代码清单

new与virtual的区别代码清单

//override重写方法在编译时绑定,new覆盖方法在运行时绑定,override必须与virtual配合使用,不能以static和virtual同时修饰一个 方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Parent
{
public void F()//定义非虚方法
{
Console.WriteLine("基类的F非虚方法被调用");
}
public virtual void G()//定义虚方法
{
Console.WriteLine("基类的G虚方法被调用");
}
}
class Child : Parent//派生子类
{
new public void F()//使用new关键字
{
Console.WriteLine("派生类F方法被调用");
}
public override void G()//使用override关键字,覆盖G方法
{
Console.WriteLine("派生类的G方法被调用");
}
}
class Test
{
static void Main()
{
Child b = new Child();//实例一个派生对象
Parent a = b;//由基类的对象引用派生类对象
a.F();
b.F();
a.G();
b.G();
}
}

相关文档