@protocol (协议)和 @interface (接口)的区别

Wesley13
• 阅读 990

Objective-C 中的协议(@protocol),相当于 C#, Java 等语言中的接口 (Interface)。协议本身不实现任何方法,只是声明方法,使用协议的类必须实现协议方法。

Objective-C 中的接口(@interface),相当于 C#, Java 等语言中的类(Class),是类的一个声明,不同与 C#, Java 等语言的接口。

Objective-C 中的类必须要有接口,但不一定都要有协议。使用协议的类,必须实现协议中的方法。

Objective-C 中的父类中如果已经使用了协议(@protocol),并实现了协议中的方法,那么其子类就要添加相同的协议(@protocol),也不需要再重复实现协议中的方法,除非必要。这和 C#, Java,等语言中的接口(Interface)使用方法一致。

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java 07 接口
1.interface    接口2.接口中的成员修饰符固定  publicstaticfianl  //成员变量  只通过类访问   publicabstract    //成员函数   3.接口里所有的方法都是抽象的,抽象类中,可以没有抽象方法。  类与类继承,类与接口是实现的关系。降低耦合(高
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Easter79 Easter79
3年前
Swift专题讲解二十一——协议
Swift专题讲解二十一——协议一、引言      协议约定了一些属性与方法,其作用类似Java中的抽象类,Swift中类型通过遵守协议来实现一些约定的属性和方法。Swift中的协议使用protocol关键字来声明。Swift中的协议还有一个十分有意思的特性,协议可以通过扩展来实现一些方法和附加功能。
Wesley13 Wesley13
3年前
Java基础入门
类别关键字说明访问控制private私有的protected受保护的public公共的类、方法和变量修饰符abstract声明抽象class类extends扩充,继承final最终值,不可改变的implements实现(接口)interface接口native本地
Wesley13 Wesley13
3年前
Java第五周学习总结
学号201620172《Java程序设计》第X周学习总结教材学习内容总结1.接口(1)使用关键字interface来定义一个接口,接口分为接口声明和接口体,例如interfacePrintable
Wesley13 Wesley13
3年前
Java 接口基础详解
目录Java接口示例实现一个接口接口实例实现多个接口方法签名重叠接口变量接口方法接口默认方法接口与继承继承与默认方法接口与多态性在Java中,接口是一个抽象类型,有点类似于类,但Java接口只能包含方法签名与属性,
Wesley13 Wesley13
3年前
Java oop第05章_多态、接口
一、为什么需要接口?  Java中当一个类继承父类时,最多也只能继承一个父类,扩展性会受到一定的限制,为了弥补这一缺陷,Java又提供了一种新的引用数据类型分类,叫接口。一个类只能继承一个父类,但可以实现多个接口。二、接口的定义和使用:  1.定义接口:使用interface关键
小万哥 小万哥
8个月前
Java 枚举(Enums)解析:提高代码可读性与易维护性
接口在Java中,实现抽象的另一种方式是使用接口。接口定义接口是一个完全抽象的类,用于将具有空方法体的相关方法分组:java//接口interfaceAnimalpublicvoidanimalSound();//接口方法(没有具体实现体)publicvo