類別(category)和繼承的區(qū)別

類別

  • 類別:類別是對(duì)一個(gè)功能完備的類的一種補(bǔ)充,就像是一個(gè)東西的主要基本功能都完成了,可以用類別為這個(gè)類添加不同的組件,使得這個(gè)類能夠適應(yīng)不同情況的需求。比如animal這個(gè)類,具有eat和run等方法,想給這個(gè)類添加一個(gè)bark的方法,可以用類別。

假設(shè)你接到一個(gè)大項(xiàng)目:計(jì)算兩個(gè)整數(shù)的和,差。

#import <Foundation/Foundation>

@interface Calculate :NSObject

@property  int number1,number2;

- (int) sumNumber1:(int)num1 andNumber2: (int)num2;//加法

- (int) subNumber1:(int)num1 andNumber2: (int)num2; //減法

- (void)print;

@end

幾天后,客戶需求發(fā)生變化,不僅需要加法,減法功能,還要能做到乘除。我們的做法一般是直接在Calculate類中添加乘,除的方法。當(dāng)然在這里是沒有任何問題的。但是在現(xiàn)實(shí)的項(xiàng)目中,代碼量十分巨大,以及業(yè)務(wù)邏輯相當(dāng)復(fù)雜的情況下,直接修改之前源代碼是冒有很大的風(fēng)險(xiǎn)的!我們現(xiàn)在可以利用分類解決這個(gè)問題

#import <Foundation/Foundation>

#import”Calculate”//既然是對(duì)原有類的接口的擴(kuò)展,所以必須包括原始接口

@interface Calculate(MulAndDiv)//告訴編譯器這是為Calculate定義的分類名為MulAndDiv

- (int) MulNumber1:(int)num1 andNumber2: (int)num2;//乘法

- (int) DivNumber1:(int)num1 andNumber2: (int)num2; //除法

@end


繼承

  • 繼承:多個(gè)類具有相同的實(shí)例變量和方法時(shí),考慮用繼承。即子類可以繼承父類的相同特性。如animal具有年齡和體重兩個(gè)屬性,dog也具有年齡和體重兩 個(gè)屬性,dog可以繼承animal的這兩個(gè)屬性,即為繼承。
  • 共同點(diǎn):都是給一個(gè)類進(jìn)行擴(kuò)展
  • 區(qū)別:
    • 1.類別是對(duì)方法的擴(kuò)展,不能添加成員變量。繼承可以在原來父類的成員變量的基礎(chǔ)上,添加新的成員變量
    • 2.類別只能添加新的方法,不能修改和刪除原來的方法。繼承可以增加、修改和刪除方法。
    • 3.類別不提倡對(duì)原有的方法進(jìn)行重載。繼承可以通過使用super對(duì)原來方法進(jìn)行重載。
    • 4.類別可以被繼承,如果一個(gè)父類中定義了類別,那么其子類中也會(huì)繼承此類別。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,443評(píng)論 0 2
  • 一.成員變量與局部變量的區(qū)別 成員變量:在類中定義,用來描述對(duì)象將要有什么(屬性)。可被本類方法和其他跟當(dāng)前類有關(guān)...
    jeffierw閱讀 644評(píng)論 0 0
  • 面向?qū)ο笾饕槍?duì)面向過程。 面向過程的基本單元是函數(shù)。 什么是對(duì)象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,228評(píng)論 0 4
  • 類別 類別:類別是對(duì)一個(gè)功能完備的類的一種補(bǔ)充,就像是一個(gè)東西的主要基本功能都完成了,可以用類別為這個(gè)類添加不同的...
    語安月月鳥閱讀 578評(píng)論 0 0
  • 一.Category 分類就是對(duì)一個(gè)類的功能進(jìn)行擴(kuò)展,,讓這個(gè)類能夠適應(yīng)不不同情況的需求.在一般的實(shí)際開發(fā)中,我們...
    Vison_朝花夕拾閱讀 795評(píng)論 0 0

友情鏈接更多精彩內(nèi)容