OC:繼承



OC繼承的特點:

@1.  繼承是單向的,不能相互繼承。

@2.  繼承具有傳遞性:A繼承於B,B繼承於C,A具有B和C的特徵和行爲

@3.  OC中只允許單繼承

@4.  繼承的內容:所有實例變量和方法。

        @5.  OC中所有的方法(消息),默認都是公有的。

修飾符:   

private:    私有成員,不能被外部函數訪問(使用),也不能被子類繼承;

protected:保護成員,不能被外部函數訪問,可以被子類繼承;

public:      公有成員,可以被外部函數訪問,也可以被子類繼承。

           注: 默認的權限是 protected

繼承的優缺點:

  優點

  @1.   提高代碼的複用。

   @2.   擴展原有的類。

注意:NSString、NSArray、NSDictionary都是不能夠繼承的。

 

  缺點:

      @1.    破壞了封裝性,基類向子類暴露了實現細節 ,白盒重用。 
      @2.    當父類的實現改變時可能要相應的對子類做出改變 
      @3.    不能在運行時改變由父類繼承來的實現 


 因此:組合比繼承具有更大的靈活性和更穩定的結構,一般情況下應該優先考慮組合.

OC的方法都是虛方法:

  1)父類的指針可以指向子類的對象

     Person *p = [[Student alloc] init];

  此時的p指向子類對象;調用方法時,不看指針,看對象,對象的地址指向什麼對象,就調用什麼方法,稱爲虛方法。

  2)虛方法的好處:可以描述不同事物被相同事件觸發,會產生不同的響應。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章