在具有相同函数名称的另一个抽象类中继承抽象类

时间:2015-07-06 06:50:14

标签: c#

我有两个抽象类AbstractClass1AbstractClass2,它们都应该具有相同的方法名Meth1

现在,如果AbstractClass1继承自AbstractClass2,该怎么办?目前它给我一个编译时错误"Hides Inherited Abstract Member"。以下是我的代码。

 abstract class AbstractClass1 : AbstractClass2
 {
    public abstract string Meth1();
 }

 abstract class AbstractClass2
 {
    public abstract string Meth1();
 }

2 个答案:

答案 0 :(得分:3)

您可以在派生类方法上使用abstract override来避免编译时错误。

abstract class BaseAbstract
{
    public abstract string Meth1();
}

abstract class ChildAbstract : BaseAbstract
{
    public abstract override string Meth1();
}

请注意这不是正确使用abstract override的地方。 通常在从非抽象类派生抽象类时使用抽象覆盖。确保派生类实现该方法。 (见this

看看下面的代码

class BaseNonAbstract
{
      public virtual string Meth1()
      {
         // do something
         return string.Empty;
      }
}
abstract class ChildAbstract : BaseNonAbstract
{
    public abstract override string Meth1();
}

答案 1 :(得分:2)

试试这个

abstract class AbstractClass1 : AbstractClass2
{
}


abstract class AbstractClass2
{
    public abstract string Meth1();
}