簡體   English   中英

在另一個具有相同函數名稱的抽象類中繼承抽象類

[英]Inherit abstract class inside another abstract class with same function names

我有兩個抽象類AbstractClass1AbstractClass2 ,它們都應具有相同的方法名稱Meth1

現在,如果我的AbstractClass1繼承自AbstractClass2該怎么辦。 目前,它正在向我拋出"Hides Inherited Abstract Member"的編譯時錯誤。 下面是我的代碼。

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

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

您可以對派生類方法使用abstract override ,以避免編譯時錯誤。

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

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

但是 請注意,這不是使用abstract override正確位置。 從非抽象類派生抽象類時,通常使用抽象覆蓋。 確保派生類實現該方法。 (參見

看下面的代碼

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

嘗試這個

abstract class AbstractClass1 : AbstractClass2
{
}


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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM