110,545
社区成员
发帖
与我相关
我的任务
分享
using System;
namespace PCTest
{
public class ClassB
{
public new virtual void GetName()
{
Console.WriteLine("GetName:ClassB!");
}
}
public class ClassBB : ClassB
{
public new virtual void GetName()
{
Console.WriteLine("GetName:ClassBB!");
}
}
public class ClassBBB : ClassBB
{
public new virtual void GetName()
{
Console.WriteLine("GetName:ClassBBB!");
}
}
//abstract|virtual|override|new|[]|new virtual|null
//
//abstract->override
//virtual->[]|virtual|override|new virtual|override|new
//[]->[](=new)|new|virtual|new virtual
//override->[](=new)|new|virtual|new virtual|override
//new->[](=new)|new|virtual|new virtual
//new virtual->[]|virtual|override|new virtual|override|new
//
//abstract :当前不实现,不覆写基类,不能被重写, 必须覆写
//[]|new : 当前实现,不覆写基类, 能被重写,不能被覆写,[]会有警告
//virtual : 当前实现,不覆写基类, 能被重写, 能被覆写,会有警告//
//new virtual: 当前实现,不覆写基类, 能被重写, 能被覆写,会有警告//
//override : 当前实现, 覆写基类, 能被重写, 能被覆写
public class Test
{
static void Main()
{
//建立对象
ClassB a = new ClassB(); a.GetName();
ClassBB aa = new ClassBB(); aa.GetName();
ClassBBB aaa = new ClassBBB(); aaa.GetName();
//
ClassB b;
ClassB bb;
b = aa; b.GetName();
b = aaa; b.GetName();
bb = aaa; bb.GetName();
//End
Console.ReadKey();
}
}
}
void fun()
new void fun()
virtual fun()
new virtual void fun()