如何在c#中的非抽象,非继承类中实现抽象方法

时间:2015-02-11 09:42:53

标签: c# inheritance abstract

您好我想在非抽象类和非派生类中实现抽象方法在继承类(派生类)中我可以轻松覆盖方法但我想知道是否可以在非派生类中执行此操作。 我正在粘贴代码的一部分以便理解 在代码中我需要在ActionBaseTester clas中实现getAction()方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AbstractClassIssue.cs
{
    public abstract class ActionBase
    {
        public abstract bool getAction(ActionBase act);
    }

    public class ActionBaseDerived : ActionBase
    {
        public override bool getAction(ActionBase act)
        {
            return true;
        }
    }

    class ActionBaseTester
    {
        //How to implement getAction method in non abstract non inherited class
        static void Main(string[] args)
        {

        }
    }
}

enter code here

2 个答案:

答案 0 :(得分:0)

  • 您必须从 ActionBase 继承 ActionBaseTester 类。
  • 您必须在 ActionBaseTester
  • 类中使用覆盖指令编写方法

答案 1 :(得分:0)

您已经通过编写getAction从抽象基类ActionBase实现了抽象方法public override bool getAction(ActionBase act)。这就是抽象类的要点:提供功能但将实现留给它们的派生类。现在,您可以通过以下代码在Main方法中调用此方法:

ActionBase @base = new ActionBaseDerived();
@base.getAction(yourAction);