Android、iOS大不同(六)
协议或者接口,用于多个类应该遵守的规范。不需要提供实现,不关心内部的状态数据,体现了规范和实现分离的设计哲学。
接口
在Java中实现此类设计的方法用接口(interface)
1 | // 接口的定义 |
- 修饰符采用public或缺省,即采用包权限或者外部权限
- 接口的命名与类相同
- 一个接口可以有多个直接父类,但接口只能继承接口
在接口中定义的变量默认会被加上static和final成为静态常量,切所有的常量、方法、内部类、枚举类都是public权限
1 | public interface Output |
协议
在Objective-C中使用协议(protocol)实现该设计需求
1 | @protocol 协议名 <父协议1,父协议2...> |
- 命名规则与类相同
- 一个协议可以继承多个父协议,但是不能继承类
- 协议定义的方法不能有方法实现,即可以使类方法,也可以使实例方法
1 | @protocol Output |
Obejctive-C可以指定关键字@optional、@required限定实现类是否必须实现该方法
1 | @protocol Output |

