2

以下のような基本クラスと派生クラスがあります。

//base class
public class BST
{
    public virtual void Find();
    public virtual void Insert()
    {
        Find();
    }
}


// derived class
public class splayTree:BST
{
    public override void Find()
    {
       base.Find();
       ...
    }
    public override void Insert()
    {
       base.Insert();
       .....
    }
}

splayTree オブジェクト splayTree を作成した後,

  • 電話するsplayTree.Insert();
  • Insert()通話base.Insert()
  • base.Insert()Find()派生クラスの呼び出し。

基本クラスをbase.Insert()呼び出すにはどうすればよいですか? Find()ありがとうございました。

4

3 に答える 3

4

基本クラスは Find を Virtual として定義しています。これは、子クラスがそれをオーバーライドする可能性があることを示しており、そうであれば、基本クラスはそのオーバーライドを使用します。

子クラスでベースの Find を呼び出したい場合は、Find を実装しないでください。

base.Find に実質的に接続されていない Find というメソッドを子クラスで定義する場合は、override キーワードの代わりに new キーワードを使用します。

于 2013-10-08T03:18:24.510 に答える