抽象関数を使用してベースクラスの虚関数を書き換えることができますか?

1482 ワード

できる
ベースクラスの関数の実装が隠されていることを示す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();
    }