public abstract class abstractlist
{
public abstractlist()
{
Console.WriteLine("A");
}
public void ceshi()
{
Console.WriteLine("A.FUN()");
}
}
public class Class2 : abstractlist
{
public Class2()
{
Console.WriteLine("B");
}
public new void ceshi()
{
Console.WriteLine("B.FUN()");
}
}
调用
Class2 b = new Class2();
b.ceshi();
abstractlist a = new Class2();
a.ceshi();
结果
A
B
B.FUN()
A
B
A.FUN()
解读:Class2继承abstractlist父类,如果父类有结构函数,就先执行父类的结构函数,然后执行子类的结构函数。
在子类中定义了一个与父类一样的方法必须用NEW修饰,如果不用NEW修饰出现异常。目的是隐藏子类的这个方法,除非你初始化NEW子类,然后调用子类的方法。