Protocol基本概念

1.protocol 基本概念

  • Protocol翻译过来, 叫做”协议”

    • 在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在OC里面Interface是一个类的头文件的声明,并不是真正意义上的接口的意思,在OC中接口是由一个叫做协议的protocol来实现的
    • protocol它可以声明一些必须实现的方法和选择实现 的方法。这个和java是完全不同的
  • Protocol的作用
    • 用来声明一些方法
    • 也就说, 一个Protocol是由一系列的方法声明组成的

2.protocol 语法格式

  • Protocol的定义
@protocol 协议名称
// 方法声明列表
@end
  • 类遵守协议

    • 一个类可以遵守1个或多个协议
    • 任何类只要遵守了Protocol,就相当于拥有了Protocol的所有方法声明
@interface 类名 : 父类 <协议名称1, 协议名称2,…>
@end
  • 示例
@protocol SportProtocol <NSObject>
- (void)playFootball;
- (void)playBasketball;
@end

#import "SportProtocol.h" // 导入协议
@interface Studnet : NSObject<SportProtocol> // 遵守协议
@end

@implementation Student
// 实现协议方法
- (void)playBasketball
{
    NSLog(@"%s", __func__);
}
// 实现协议方法
- (void)playFootball
{
    NSLog(@"%s", __func__);
}
@end

3.protocol和继承区别

  • 继承之后默认就有实现, 而protocol只有声明没有实现
  • 相同类型的类可以使用继承, 但是不同类型的类只能使用protocol
  • protocol可以用于存储方法的声明, 可以将多个类中共同的方法抽取出来, 以后让这些类遵守协议即可
时间: 2024-10-15 10:43:09

Protocol基本概念的相关文章

Protocol Buffer详解

1.Protocol Buffer 概念 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件.他们用于 RPC 系统和持续数据存储系统. Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关

ios---&gt;OC中Protocol理解及在代理模式中的使用

OC中Protocol理解及在代理模式中的使用 Protocol基本概念 Protocol翻译过来, 叫做"协议",其作用就是用来声明一些方法: Protocol(协议)的作用 定义一套公用的接口(Public) @required:必须实现的方法,默认在@protocol里的方法都要求实现. @optional:可选实现的方法(可以全部都不实现) 委托代理(Delegate)传值 它本身是一个设计模式,它的意思是委托别人去做某事. 比如:两个类之间的传值,类A调用类B的方法,类B在执

iOS开发——面试篇&amp;OC基本语法总结(面试)

OC基本语法总结(面试) C和OC对比 OC中主要开发在什么平台上的应用程序? 答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头? 答:OC中新增关键字大部分是以@开头 OC中新增加了那些数据类型? 答: Block类型 指针类型(Class, id类型) 空类型 特殊类型(SEL, nil) 面向对象特性是什么? 答:继承性,封装性,多态性 import和#include有什么区别? 答:import 的功能和 include一样, 是将右边的

iOS开发——MVC详解&amp;Swift+OC

MVC 设计模式 这两天认真研究了一下MVC设计模式,在iOS开发中这个算是重点中的重点了,如果对MVC模式不理解或者说不会用,那么你iOS肯定学不好,或者写不出好的东西,当然本人目前也在学习中,不过既然能看到这篇文档,说明你已经开始着手学习并且想深入研究它了,个人也是研究很久才搞懂,就写下来希望对各位有用,也能方便自己以后开发中查看,好了废话不多说,下面就来详细介绍一下MVC,并且用实例验证一下在项目开发中怎么去使用它. 相信你对 MVC 设计模式 并不陌生,只是不能完全理解其中的含义或者不能

【网络基础】ICMP报文和ping指令

ICMP报文: 作用: 为了更有效转发IP数据报和提高 IP 数据报交付成功的机会, 在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol). 概念: ICMP 不是高层协议,而是 IP 层的协议.ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送. 格式: 种类(对应ICMP报文内的类型字段): ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文. ICMP差错报告报文共有五种:

OC蜕变第七天

总结 编号 标题 内容 一 protocol protocol 基本概念/语法格式/protocol和继承区别/使用注意/基协议/@required和@optional关键字/类型限制 二 代理设计模式 代理设计模式基本概念/示例/练习/编写的规范 三 Foundation框架介绍 Foundation框架介绍/常见错误 四 NSString NSString基本概念/创建方式 五 字符串的处理 读写/比较/搜索/截取/替换函数 六 字符串与路径 NSString与路径/NSString与文件拓

WPAD

(WPAD)Web Proxy Auto Discovery Protocol 基本概念:   Web Proxy Auto-Discovery (WPAD) Proxy Auto-Config (PAC) WPAD protocol is a method used by Web browsers to locate a Proxy Auto-Config (PAC) file automatically 协议的目的之 自动定位PAC文件   WPAD部署方法:   1.自动获取WPAD文件 

快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础

上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是Windows,装虚拟机也麻烦,所以还不如30块钱 买个腾讯云,用putty远程练上去写代码呢. 我一直都是putty+VIM在Linux下开发代码,好几年了,只要把putty和VIM配置好,其实 开发效率挺高的. 买好腾讯云后,装个Centos,会分配个外网IP,然后买个域名,在DNSPod解析过去

請推薦有關網路的書

转自:http://linux.vbird.org/linux_basic/0120howtolinux/0120howtolinux_1.php ----- Original Message ----- From: "網中人" Newsgroups: tw.bbs.comp.network Sent: Thursday, September 27, 2001 2:33 PM Subject: Re: 請推薦有關網路的書.... > > > "藍色的海&qu