0
考慮下面的類:爲什麼此警告說靜態成員正在「繼承」?
public class A
{
}
public class B
{
public static A StaticA { get; set; }
}
public class C : B
{
public static A StaticA { get; set; }
}
,這將拋出一個警告:
'C.StaticA' 隱藏繼承成員 'B.StaticA'。如果需要隱藏,請使用新關鍵字。
我可以通過添加new
關鍵字擺脫了警告,因爲我說:
public static new A StaticA { get; set; }
但是我爲什麼要?爲什麼靜態成員被繼承? 就我而言,靜態成員被綁定到一個特定的類型,而不是一個實例。
但是,警告確實說「繼承成員」,所以這些靜態屬性似乎是在事實上繼承。
這是爲什麼?不是針對OOP原則的靜態繼承?
我不認爲這是重複的。也許我應該重新說明我的問題,但是我問爲什麼警告使用「繼承成員」這個詞,事實上,靜態成員**沒有被繼承**,從子類訪問它們只是合成糖。 –