類繼承
通過繼承我們可以定義一個新類,新類納入一個已經聲明的類并進行擴展。
可以使用一個已經存在的類作為新類的基礎。已存在的類稱為基類(base class),新類稱為派生類(derived class)。
基類規格說明:由冒號和后面跟著用作基類的類名稱組成。
派生類被描述為直接基礎列出的基類。
相關概念如下所示:

繼承的成員可以被訪問,就像是它們是派生類自己聲明的一樣。
在派生類中訪問基類中的字段和方法的例子
class SomeClass //基類
{
public string field1 = "base class field";
public void Method1(string value)
{
Console.WriteLine($"Base class -- Method1: {value}");
}
}
class OtherClass : SomeClass //派生類
{
public string field2 = "derived class field";
public void Method2(string value)
{
Console.WriteLine($"Derived class -- Method2: {value}");
}
}
internal class Program
{
static void Main(string[] args)
{
OtherClass oc = new OtherClass();
oc.Method1(oc.field1);
oc.Method1(oc.field2);
oc.Method2(oc.field1);
oc.Method2(oc.field2);
}
}
運行結果如下所示:

所有的類都派生自object類
在C#中除了特殊的類object,所有的類都是派生類,即使沒有基類規格說明。
在C#中一個類聲明的基類規格說明中只能有一個單獨的類。這稱為單繼承。
雖然類只能直接繼承一個基類,但繼承的層次沒有限制。
隱藏繼承的成員
可以使用new修飾符來屏蔽基類成員,代碼如下U所示:
class SomeClass //基類
{
public string field1 = "base class field";
public void Method1(string value)
{
Console.WriteLine($"Base class -- Method1: {value}");
}
}
class OtherClass : SomeClass //派生類
{
//使用new修飾符屏蔽基類成員
new public string field1 = "derived class field";
new public void Method1(string value)
{
Console.WriteLine($"Derived class -- Method2: {value}");
}
}
internal class Program
{
static void Main(string[] args)
{
OtherClass oc = new OtherClass();
oc.Method1(oc.field1);
}
}
運行結果如下所示:

訪問基類成員
可以使用基類訪問(base access)表達式訪問隱藏的繼承成員,基類訪問表達式由關鍵字base后面跟著一個點和成員的名稱組成。
訪問隱藏的基類成員的例子
代碼如下:
class SomeClass //基類
{
public string field1 = "base class field";
}
class OtherClass : SomeClass //派生類
{
new public string field1 = "derived class field";
public void PrintField1()
{
Console.WriteLine(field1); //訪問派生類
Console.WriteLine(base.field1); //訪問基類
}
}
internal class Program
{
static void Main(string[] args)
{
OtherClass oc = new OtherClass();
oc.PrintField1();
}
}
?運行結果如下所示:

轉自https://www.cnblogs.com/mingupupu/p/17837924.html
該文章在 2025/2/15 11:02:33 編輯過