派生類的申明格式:
屬性 類修飾符 class 派生類名:基類名{
類體
}
例如:
class employee:person //person是基類
{
private string department;
private decimal salary;
public employee(string name, int age, string depmt, decimal sal):base(name,age)
{//base的第一種用法,根據參數調用指定基類構造函數,注意參數的傳遞
department = depmt;
salary = sal;
}
public new void Display(){//覆蓋基類Display()方法,注意new,不可用override
base.Display(); //base的第二種用法,訪問基類被覆蓋的方法
Console.WriteLine("部門:{0} 薪水:{1}",department,salary);
}
}
注意:如果派生類繼承了基類的私有成員變量,那麼派生類不能通過新增或者覆蓋的方法直接修改基類私有成員變量,只能通過基類原有的公有方法SetXxx()修改。如果希望在派生類中直接修改,必須在基類中修改它們的屬性爲protected。
2.base關鍵字
一、在定義派生類的構造函數中,指明要調用的基類構造函數,由於基類可能有多個構造函數,根據base後面的參數類型和個數,指明要調用哪一個基類的構造函數。
二、在派生類中方法中調用基類中派生類覆蓋的方法。
3.C#語言繼承的特點:
(1)C#語言只允許單繼承,即派生類只能有一個基類;
(2)C#繼承是可以傳遞的,C繼承B,B繼承A,那麼C不但繼承B的成員,還繼承A中的成員。
(3)派生類可以添加新成員,但不能刪除繼承的成員;
(4)派生類不能繼承基類的構造函數、析構函數和事件;但能繼承基類的屬性;
(5)派生類的對象也是其基類的對象,但基類的對象不是其派生類的對象。故基類的引用變量可以引用其派生類對象。