[英]Inherit abstract class inside another abstract class with same function names
我有兩個抽象類AbstractClass1
和AbstractClass2
,它們都應具有相同的方法名稱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.