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

繼承的成員可以被訪問,就像是它們是派生類自己聲明的一樣。
在派生類中訪問基類中的字段和方法的例子
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);
}
}
運(yùn)行結(jié)果如下所示:

所有的類都派生自object類
在C#中除了特殊的類object,所有的類都是派生類,即使沒有基類規(guī)格說明。
在C#中一個(gè)類聲明的基類規(guī)格說明中只能有一個(gè)單獨(dú)的類。這稱為單繼承。
雖然類只能直接繼承一個(gè)基類,但繼承的層次沒有限制。
隱藏繼承的成員
可以使用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);
}
}
運(yùn)行結(jié)果如下所示:

訪問基類成員
可以使用基類訪問(base access)表達(dá)式訪問隱藏的繼承成員,基類訪問表達(dá)式由關(guān)鍵字base后面跟著一個(gè)點(diǎn)和成員的名稱組成。
訪問隱藏的基類成員的例子
代碼如下:
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();
}
}
?運(yùn)行結(jié)果如下所示:

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