抽象関数を使用してベースクラスの虚関数を書き換えることができますか?
できる
ベースクラスの関数の実装が隠されていることを示すnew修飾子を使用して明示的に宣言する必要があります.
またはoverride修飾子を追加して、ベースクラスの関数を抽象的に書き換えた実装を示します.
例:
ベースクラスの関数の実装が隠されていることを示すnew修飾子を使用して明示的に宣言する必要があります.
またはoverride修飾子を追加して、ベースクラスの関数を抽象的に書き換えた実装を示します.
例:
class BaseClass
{
public virtual void F()
{
Console.WriteLine("BaseClass.F");
}
}
abstract class DeriveClass1 : BaseClass
{
public abstract new void F();
}
// watson hua(http://huazhihao.cnblogs.com/)
//
abstract class DeriveClass2 : BaseClass
{
public abstract override void F();
}