天天看點

分類(類别,category),類擴充

--分類的作用:為原有的類增加一個方法,擴充分類的作用,靠擴oc中原有的類和自己建立的類(擴充已有類的功能)

1.分類是原來的類增加方法

2.在方法内部可以通路原有類的成員變量(定義在頭檔案中的)

一、步驟:

1.為原有類建立一個分類

2.在分類中增加新的方法和實作

二、注意點:

1.分類不能擴充原有類的成員變量

[email protected]在分類中隻能生成getter setter方法的聲明,不能生成實作和成員變量

三、分類可以擴充系統自帶的的類功能

1.給NSObject增加分類會影響到所有的類,所有一定要謹慎小心

2.不能在分類中定義與原有類同名方法,分類之間也不可以有同名的方法

4.如果在分類中增加一個與原有類同名的方法,那麼分類中這個方法會覆寫原有類的方法(哪怕沒有導入過這個分類)

5.多個分類中如果有相同的方法,最後編譯分類的方法

四、類擴充(在ui中封裝某個控件用的比較多)

1.類擴充的作用:一般定義在.m檔案中,為類增加私有的屬性和方法(私有的屬性和方法,類外不能使用,也不能被繼承)

2.步驟:

       (1)可以通過增加一個檔案(隻有.h檔案)的方法(不建議)

       (2)直接在.m檔案中寫一個@interface 類名 (),括号中不要有任何内容,在.m 檔案中表示隻能是私有的(建議)

類擴充與分類的差別:

分類:為原有類增加方法,能被繼承和外界使用,用過增加一個category檔案(一個.h檔案一個.m檔案)的方法使用,擴充原有類的方法,不能增加成員變量

類擴充:為類增加私有的成員變量和方法。

分類的@interface的括号中有内容,在類擴充中沒有

分類和繼承的差別:

      1.類别是對方法的擴充,不能添加成員變量。繼承可以在原來父類的成員變量的基礎上,添加新的成員變量

      2.類别隻能添加新的方法,不能修改和删除原來的方法。繼承可以增加、修改和删除方法。

      3.類别不提倡對原有的方法進行重載。繼承可以通過使用super對原來方法進行重載。

      4.類别可以被繼承,如果一個父類中定義了類别,那麼其子類中也會繼承此類别。 

轉載于:https://www.cnblogs.com/xiaofei993/p/5314424.html

ui