你們好,我叫李京陽,,很高興認識你們,之因此我想開一個本身的博客,就是來把本身所瞭解的知識點經過本身的話寫一下,但願被博客園的朋友們點評和一塊兒討論一下,也但願從博客園中多認識一些軟件開發人員!如今我開始講一下面向對象的一點知識,請大家多多點評和討論!!工具
1. 繼承的目的雖然是讓子類去擁有父類的成員,可是繼承必定不要亂繼承
不要僅僅是爲了去獲得某1個類的成員而去繼承.
知足繼承的關係: 當知足is a 的關係的時候,就能夠繼承.
當子類是1個父類的時候 那麼就能夠繼承.
Student Personthis
class Student : Person { }
麻雀 鳥
汽車 交通工具
電風扇 電器
2. 只要有1個成員 不是全部的子類 都擁有的, 那麼這個成員就不該該定義父類中.
3. this關鍵字表明當前對象, 經過this關鍵字能夠訪問當前對象的成員
當前對象的成員: 本身自己的員+從父類繼承過來的全部的成員.
spa
1 class Student : Person 2 { 3 public string StuNo { get; set; } 4 5 6 public void Test() 7 { 8 this.Name = "jack"; 9 } 10 }
this關鍵字能夠訪問 本類的全部成員和父類的非私有成員. 父類的私有成員確實存在,可是就是訪問不到.
this關鍵字仍然表明的是對象,經過它能夠點出對象中的 除了父類的私有成員 之外的全部成員.
this關鍵字只能用在實例方法中. code
base關鍵字.顯示的訪問父類的非私有成員 。 能夠訪問子類對象中的 父類的 非私有成員.
特別強調的是: base不表明父類對象 由於壓根就沒有父類對象. 經過它能夠訪問父類的非私有成員.
經過this關鍵字訪問當前對象的成員的時候: 先找子類自己有沒有這個成員,若是沒有再找是否有從父類繼承過來的.
base關鍵字 直接就找父類中的成員.對象
1 class Student : Person 2 { 3 public string StuNo { get; set; } 4 5 6 public Student(string name, int age, bool gender, string stuNo) 7 :base(name,age,gender) 8 { 9 this.StuNo = stuNo; 10 } 11 }
咱們發現,base能夠點出來的成員 經過this均可以點出來訪問.
建議: 若是咱們訪問的確實是從父類繼承過來的成員 那麼建議用base關鍵字來訪問. a.方便代碼的閱讀.b.提升效率
只有在訪問的成員確實是子類獨有的,那麼咱們才用this關鍵字.blog
4. 繼承的特色
a. 單根性: 1個類只能有1個父類. 1我的只能有1個親爹, 可是能夠有多個乾爹.
可是1個類能夠實現多個接口.
b. object類是全部類的祖宗類.C#中的類都直接的或者間接的從Object類繼承.
若是咱們寫1個類 不爲這個類指定父類 那麼這個類默認就從object類繼承.
因此咱們才能夠在這個類中看到object類的成員.
c. 傳遞性:
A類從B類繼承, B類從C類繼承 那麼A類就擁有了B和C的全部成員.
5. protected修飾的成員只能直接在本類和本類的子類中訪問. 繼承
1 protected double Height { get; set; } 2 3 4 public void SayHi() 5 { 6 Console.WriteLine("身高:" +Height); 7 }
在子類中只能直接訪問當前子類對象從父類繼承過來的ptotected
可是不能經過父類對象點出protected來訪問.
經過子類對象 在子類的內部 是能夠點出protected的.
在父類的內部是不管是直接訪問仍是建立父類對象都是能夠訪問protected接口