协议(Protocol)类比java中的interface

1协议:简单滴说就是类似于java中的接口。

1.1定义

@protocol 协议名
    //methods declare
@optional //methods declare
@required    //methods declare
@end

类似于:
public interface 协议名{
    方法声明    
}
eg: @protocol MyProtocol
    -(void)add;
    -(void)jian;
    -(void)cheng;
     @end

1.2使用

在类的声明中通过<>来指定协议,将协议名写在<>中,若有多个协议,则用逗号分隔开。
例如:
定义一个学生类:

@interface Student:NSObject<MyProtocol>

{
    成员变量...
}

方法声明...
@end

类似于:public class Student extends NSObject implements MyProtocol{}



1.3可以用协议来限定变量类型或方法参数类型的范围:

eg: id<MyProtocol> ptr = xxxx;

这个表明ptr这个变量只能保存实现了MyProtocol类的对象。

-(void) setPerson:(Person<MyProtocol>) person;

这个表明setPerson:这个方法只能接收实现了MyProtocol类的对象.


你可能感兴趣的:(协议(Protocol)类比java中的interface)