抽象函数和虚函数之间有什么区别?
抽象函数和虚函数之间有什么区别? 在哪些情况下,建议使用虚拟还是抽象? 哪种方法更为正确?
抽象函数不能具有功能。 你基本上说,任何子类都必须给出它们自己的这个方法,但是它太笼统了,甚至不能尝试在父类中实现。
虚拟功能 ,基本上是说看,这里的功能可能会或可能不足以满足孩子的需求。 所以,如果它足够好,使用这种方法,如果没有,然后覆盖我,并提供自己的功能。
抽象函数没有实现,只能在抽象类中声明。 这迫使派生类提供一个实现。 虚函数提供了一个默认实现,它可以存在于抽象类或非抽象类中。 例如:
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
类必须 override
其abstract
成员。 abstract
成员是隐式virtual
。 abstract
成员不能提供任何实现( abstract
在某些语言中称为pure virtual
)。 上一篇: What is the difference between an abstract function and a virtual function?