繼承和類設計,繼承類設計

來源:互聯網
上載者:User

繼承和類設計,繼承類設計

==========================

繼承和類設計

==========================

oc是一門物件導向的語言,物件導向編程有三大特性:封裝、繼承、多態

 

一.封裝

【注】封裝就是把某些解決一些問題的代碼進行模組化,對外部暴露一個介面。我們都稱為封裝了一個方法;

【優點】

1.封裝可以增強代碼的複用度。

2.封裝可以有效提高開發速度。

  

二.繼承

子類擁有了父類的方法和屬性的情況,我們稱為繼承;

A:B(讀作:A類繼承B類,也就A類擁有了B類的方法和屬性)

 

【優點】

1.不用書寫任何代碼,就可以實現某一些功能;

2.可以不用修改父類的方法,對父類進行擴充;

 

三.多態

多態:類的多種形態

【總結】

多態的方式,可以有效縮減代碼量

多態多用在具有相同方法名的類中,外部在調用方法之前,並不清楚需要調用哪個類中方法;

 

四.類別(category)(擴充)

 

有一些第三方類、咱們程式員以前自己寫的一些類,要用到的時候突然發現如果這個類能有一個xxx方法那就好了,但是又不允許對第三分類或者以前寫的類進行修改。那麼怎麼辦?就可以用到類別(擴充)

 

1.認識category

 

#import <Foundation/Foundation.h>

#import "dog.h"

// 使用類別的時候需要先包含標頭檔

// 類別一般單獨放到一個類中進行擴充 

#import "NSString+print.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {  

        NSString* str = @"hello world hahah";

        [str show];

        NSLog(@"%@",str);

        dog* mydog = [[dog alloc]init];

        [mydog test];

     }

    return 0;

}

#import <Foundation/Foundation.h>

// NSString 就是要擴充的類 ()小括弧內部就是你自己寫的類名

@interface NSString (print)

//這個位置寫需要擴充出來的方法

-(void)show;   // 列印當前對象

// 可以擴充成員方法,但是不可以擴充成員變數

// 【注】類別就是為了擴充第三方類或者其它以前自己寫的類方法,但是又不可以對第三方和之前寫的方法進行修改,而存在的;

@end

 

#import "NSString+print.h"

 @implementation NSString (print)

 -(void)show

{

    //列印當前對象

    NSLog(@"%@",self);

}

@end

 

#import <Foundation/Foundation.h>

@interface dog : NSObject

-(void)test;

@end

 

#import "dog.h"

#import "NSString+print.h"

 @implementation dog

-(void)test

{

    NSString* str = @"我是dog class";

    [str show];

}

@end

 

繼承和類別的區別

1.類別是對類的方法進行擴充,不能新增成員變數。但是繼承可以在原有父類的基礎上對方法和成員變數進行擴充。

2.類別只能添加新的方法,不能修改刪除原類的方法,但是繼承可以增加和修改;

3.類別不提倡對原有方法進行重載,但是繼承可以。

4.類別可以被繼承,如果父類中實現了類別,子類也就存在此類別。

 

2.認識extension(擴充)也是類別的一種;

 

【知識擴充】

1.聲明在.h中的方法或者屬性變數,外界可以訪問;

2.聲明在.m中的屬性變數或者方法,只是當前類可以訪問;

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.