繼承是面向?qū)ο蟮娜筇匦灾弧?/p>
1.繼承
1.1概念:一個類從其他類派生時沐祷,派生類隱式獲得基類除構(gòu)造函數(shù)和析構(gòu)函數(shù)外所有成員萍虽。C#只支持單繼承
1.2.語法格式:calss ClassName:SuperClass{}鳞上。冒號表示繼承,示例
public class Person()
{
private string Name{ get; set; }
}
class Student:Person(){
public Student(string name){
this.Name = name; // 繼承了父類的Name屬性
}
public void Study(){
Console.WriteLine(name + “在學(xué)習(xí)”);
}
}
1.3.構(gòu)造函數(shù):當(dāng)子類實(shí)例化時,構(gòu)造函數(shù)從基類依次被調(diào)用几颜。
通過 sealed 關(guān)鍵字可以禁止類進(jìn)一步派生
2.幾個關(guān)鍵字
virtual: 用于修飾方法笼踩,屬性获列,索引器或事件谷市,并使他們可以在派生類中被重寫(override)
new: 顯式隱藏從父類繼承的成員,主要用于派生類和父類同名方法的選擇
override: 1).重寫繼承的方法击孩,或事件的抽象實(shí)現(xiàn)或虛實(shí)現(xiàn)
2).由override聲明重寫的方法稱為重寫基方法迫悠,重寫的基方法必須與override方
法具有相同的方法名和簽名
3).不能重寫非虛方法或靜態(tài)方法,重寫的基方法必須具有virtual巩梢、abstract创泄、或
override關(guān)鍵字
代碼:
public class Person()
{
private string Name{ get; set; }
// 如果這里沒有加上virtual 關(guān)鍵字修飾,子類將不能通過override關(guān)鍵字進(jìn)行重寫
public virtual void Eat(){
Console.WriteLine("我是人類括蝠,我要吃飯");
}
}
class Student:Person(){
public override void Eat()
{
Console.WriteLine("學(xué)生要吃飯");
}
//public new void Eat()
//{
// Console.WriteLine("學(xué)生要吃飯");
//}
}
static void Main(string[] args)
{
Person person = new Student(“繼承”);
person.Eat();
}
new關(guān)鍵字修飾
override關(guān)鍵字修飾
結(jié)論:
new關(guān)鍵字用來區(qū)分子類和派生類的方法
override重寫父類的方法鞠抑,即覆蓋了父類的方法
【原】