协议Protocol

一、协议的基本概念

1、protocol它可以声明一些必须实现的方法和选择实现的方法,这与java是完全不同的

2、在写java1是

二、Protocol语法格式

1、定义

@protocol   协议名称

//方法声明列表

@end

2、类遵守协议

@interface   类名  :父类<协议名称1,协议名称2,..>

@end

三、Protocol与继承的区别

1、继承之后默认就有实现,而protocol只有声明

2、相同类型的类可以使用继承,但不同的类型只能使用protocol

3、protocol可以用于存储方法的声明,可以将多个类共同的方法抽取出来,以后让这些类遵守协议即可

四、注意:

1、协议只能声明方法,不能声明属性

2、父类遵循了每某个协议,那么它的子类也遵循这个协议

3、在oc中一个类可以遵循一个或多个协议

4、oc中的类只有一个父类,也就是说只有单继承,但遵循多层继承

5、协议可以遵守协议,一个协议遵守了另一个协议,就可以拥有另一个协议中的方法声明

五、基协议

1、NSObject是一个基类,最根本最基本的类,任何其它类最终都要继承它

2、NSObjec也是一个基协议

3、建议每个新的协议都要遵守NSObject协议

六、@required和@optional关键字

1、协议中有两个关键字可以控制方法是否要实现(默认是@required)

2、@requid:这个方法必须要实现(若不实现,编译器会发出警告)

3、@optional:这个方法不一定要实现

4、若果没有使用任何关键字修饰协议中的方法,那么该方法默认就是@required

5、如果协议中的方法用@required来修饰(或什么关键字都没修饰),而遵守协议的类又没有实现该方法,那么会报警

6、如果用@optional来修饰方法,而遵守协议的类又没有实现该方法,也不会发出警告

你可能感兴趣的:(协议Protocol)