面向對象(基礎oop)之進入繼承

          你們好,我叫李京陽,,很高興認識你們,之因此我想開一個本身的博客,就是來把本身所瞭解的知識點經過本身的話寫一下,但願被博客園的朋友們點評和一塊兒討論一下,也但願從博客園中多認識一些軟件開發人員!如今我開始講一下面向對象的一點知識,請大家多多點評和討論!!工具


           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接口

相關文章
相關標籤/搜索