虚拟和抽象方法之间的区别
这个问题在这里已经有了答案:
虚拟方法有一个实现,并为派生类提供覆盖它的选项。 抽象方法不提供实现并强制派生类重写该方法。
因此,抽象方法没有实际的代码,而子类必须覆盖该方法。 虚拟方法可以具有代码,通常是默认实现的东西,任何子类都可以使用override
修饰符覆盖方法,并提供自定义实现。
public abstract class E
{
public abstract void AbstractMethod(int i);
public virtual void VirtualMethod(int i)
{
// Default implementation which can be overridden by subclasses.
}
}
public class D : E
{
public override void AbstractMethod(int i)
{
// You HAVE to override this method
}
public override void VirtualMethod(int i)
{
// You are allowed to override this method.
}
}
首先你应该知道虚拟和抽象方法之间的区别。
抽象方法
虚拟方法
一个抽象方法必须是派生类中的调用重写,否则它会给编译时错误,并且在虚拟中,您可能会或可能不会重写它,取决于它是否足够好用它
例:
abstract class twodshape
{
public abstract void area(); // no body in base class
}
class twodshape2 : twodshape
{
public virtual double area()
{
Console.WriteLine("AREA() may be or may not be override");
}
}
链接地址: http://www.djcxy.com/p/38111.html
上一篇: Difference between virtual and abstract methods
下一篇: Anyone know a quick way to get to custom attributes on an enum value?