如果新增屬性,編譯時可以通過,但是執行時會出錯。
實際上,擴充套件並不能改變類的記憶體模型。因此無法新增屬性和例項。但是可以新增getter和setter方法。
編寫同名方法可以在編譯與執行時通過,但是會導致掩蓋基類的方法,導致各種危險的誤操作。
最大的差別,有類的源**。
讀寫屬性更改只能從唯讀變成讀寫,不能逆反。
// .m 檔案中
#import "circle.h"
//擴充套件實現
@inte***ce
circle ()
@property (readwrite )nsinteger radius;//修改讀寫屬性
@property
nsinteger center;//新增屬性
-(float)getdiameter;//例項方法
iOS 類別與類擴充套件
要點 1.什麼時候使用類別,有什麼限制,如何選擇用類別還是繼承 2.了解什麼是類擴充套件 什麼是類別 類別 category 允許對現有累進行擴充套件,在現有的類中新增使用者自己的方法。有些類似於 c 的擴充套件方法。什麼時候使用類別 有時我們需要在乙個已經定義好的類中增加一些方法,而不想去改寫該類...
類 類別 擴充套件
class sayhelloworld.h import inte ce sayhelloworld nsobject end sayhelloworld.m import sayhelloworld.h 這裡一般用extension為原類新增變數和協議等等。implementationsayhel...
類別 category 以及類擴充套件
1.可以把類別看做是可擴充套件類的介面,而無需對類進行子類化。形式如下 inte ce nsstring extension void method end implementation nsstring extension void method end 2.類別不可以有新的例項變數,只包含方法。...