3 回答
TA貢獻1719條經驗 獲得超6個贊
抽象函數不能具有功能。您基本上是在說,任何子類都必須提供自己的該方法的版本,但是它太籠統了,甚至無法嘗試在父類中實現。
虛函數基本上是在說看,這里的功能對于子類來說可能足夠好,也可能不夠好。因此,如果足夠好,請使用此方法;否則,請覆蓋我并提供您自己的功能。
TA貢獻1829條經驗 獲得超7個贊
抽象函數沒有實現,只能在抽象類上聲明。這迫使派生類提供實現。
虛函數提供了默認實現,它可以存在于抽象類或非抽象類上。
因此,例如:
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();
}
TA貢獻1858條經驗 獲得超8個贊
只有
abstract班級可以有abstract成員。一個非
abstract類從繼承abstract類必須override的abstract成員。一個
abstract成員是隱式virtual。一個
abstract成員不能提供任何實現(abstract被稱為pure virtual在某些語言)。
添加回答
舉報
