---------------------- ASP.Net+Android+IOS開發、.Net教育訓練、期待與您交流! ----------------------
繼承:
為了解決代碼備援的問題,我們在面向對象中引入了繼承這個概念,把幾個類中重複出現的成員,單獨的拿出來封裝到一個類中,将這個類作為其它幾個類的父類。
那麼其它的幾個類就都能夠通路到父類中的成員。
比如說讓Student這個類繼承于Person這個類。
把Student這個類稱之為子類或者派生類。
把Person這個類稱之為父類或者基類。
在前面的筆記中我說了,一個類中有字段,屬性,方法,和構造函數。那麼當一個子類将繼承父類的時候,都可以把那些繼承過來呢?
下面是以個題目,通過這個題目來一一解釋子類到底字父類中繼承了什麼。
定義一個父類Person. 寫一個Reporter類, Reporter 打招呼的方法是說"大家好,我叫XX,,我的愛好是XXX。其中姓名要繼承自Person中的屬性
首先定義一個Person類,裡面有三個屬性,和三個個字段,一個自定義的構造函數
namespace 繼承
{
class Person
{
string _name; //姓名
public string Name
{
get { return _name; }
set { _name = value; }
}
int _age; //年齡
public int Age
{
get { return _age; }
set { _age = value; }
}
char _gender; //性别
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
public Person(string name,int age,char gender) //構造函數
{
this.Name = name;
this.Age = age;
this.Gender = gender;
}
}
}
下面是定義的Reporter類:
class Reporter:Person //Reporter繼承Person類,
{
string _interest; //興趣
public string Interest
{
get { return _interest; }
set { _interest = value; }
}
public void Introduce() //打招呼的一個方法
{
Console.WriteLine("大家好,我叫{0},我的愛好是{1}",this.Name,this.Interest);
}
public Reporter(string name, string interest)
: base(name, 0, '\0') //需要用到base關鍵字,來調用父類中的構造函數
{
this.Name = name;
this.Interest = interest;
}
}
Reporter子類到底都繼承了Person這個父類的那些呢?
1:子類沒有繼承私有字段。
2.子類繼承了屬性
3.通過base關鍵字,在子類中顯示的調用父類的構造函數。但是子類并不是繼承的父類的構造函數,但是子類會預設的去調用父類那個預設的無參數的構造函數,但是當你在父類中有了一個構造函數的時候,
原來那個預設的無參數的就沒了了,此時,子類已經調不到你父類,需要你用base顯示去調用。
4.子類可以調用父類的方法。
繼承筆記記到這裡,掌握了新的知識在補充。
---------------------- ASP.Net+Android+IOS開發、 .Net教育訓練、期待與您交流! ----------------------