代码
public abstract class BaseClass
{
public abstract void AbstractMethod();//abstract has not function body
public virtual void VirtualMethod()
{
Console.WriteLine("VirtualMethod From AbstractClass");
}
public void NonMethod()//nonAbstract nonVirtual
{
Console.WriteLine("NonMethod From AbstractClass");
}
}
public class SubClass : BaseClass
{
public override void AbstractMethod()
{
Console.WriteLine("Must Implement the abstract method in SubClass");
}
public override void VirtualMethod()
{
Console.WriteLine("Can override the virtual method if you want");
}
public new void NonMethod()
{
Console.WriteLine("Override NonMethod in subclass by NEW ");
}
}
class Program
{
static void Main(string[] args)
{
BaseClass s1 = new SubClass();
s1.AbstractMethod();
s1.VirtualMethod();
s1.NonMethod();
SubClass s2 = new SubClass();
s2.AbstractMethod();
s2.VirtualMethod();
s2.NonMethod();
}
}
Results:Must Implement the abstract method in SubClass Can override the virtual method if you want NonMethod From AbstractClass Must Implement the abstract method in SubClass Can override the virtual method if you want Override NonMethod in subclass by NEW Press any key to continue . . .