抽象函数和虚函数之间有什么区别?

抽象函数和虚函数之间有什么区别? 在哪些情况下,建议使用虚拟还是抽象? 哪种方法更为正确?


抽象函数不能具有功能。 你基本上说,任何子类都必须给出它们自己的这个方法,但是它太笼统了,甚至不能尝试在父类中实现。

虚拟功能 ,基本上是说看,这里的功能可能会或可能不足以满足孩子的需求。 所以,如果它足够好,使用这种方法,如果没有,然后覆盖我,并提供自己的功能。


抽象函数没有实现,只能在抽象类中声明。 这迫使派生类提供一个实现。 虚函数提供了一个默认实现,它可以存在于抽象类或非抽象类中。 例如:

public abstract class myBase
{
    //If you derive from this class you must implement this method. notice we have no method body here either
    public abstract void YouMustImplement();

    //If you derive from this class you can change the behavior but are not required to
    public virtual void YouCanOverride()
    { 
    }
}

public class MyBase
{
   //This will not compile because you cannot have an abstract method in a non-abstract class
    public abstract void YouMustImplement();
}

  • 只有abstract类可以有abstract成员。
  • abstract类继承的非abstract必须 overrideabstract成员。
  • abstract成员是隐式virtual
  • abstract成员不能提供任何实现( abstract在某些语言中称为pure virtual )。
  • 链接地址: http://www.djcxy.com/p/993.html

    上一篇: What is the difference between an abstract function and a virtual function?

    下一篇: Lookup Java enum by string value