類別:擴展已存在類的內置功能(無需繼承即可擴展類的功能)java
類別能夠擴展類以前不存在的一個屬性,不能像繼承那樣給類別接口添加實例變量,而是要擴展一個類的行爲ui
除了對現有類增長新的行爲以外,類別還支持對本身構建的類把相關方法分組到多個單獨文件中spa
在m文件中用匿名類別能夠實現方法或屬性的私有化.net
在import以後添加:blog
interface 類名(){繼承
私有化屬性接口
}事件
協議:協議定義了一個類與另外一個類溝通的先驗方式,它們包含一個方法列表,有的是可選的,有的是必須的。協議中定義的方法包括一些操做響應和事件響應。委託和數據源都是由協議產生的。ip
協議相似Java中的接口,定義了一組方法,遵循協議的類都認爲贊成知足這一組方法列表get
協議能夠用來定義回調方法(IOS委託和數據源都是用協議來實現的,UITableViewDelegate、UITableViewDatasource)
協議分爲可選實現方法和必須實現方法,用關鍵字 @required 和 @optional區分
判斷一個類是否實現了協議的可選方法: