Objective C协议

协议类似于Java中的接口或者C++中的纯虚类,只有接口部分而没有实现部分只定义了方法的声明部分而没有实现部分。关键字为@protocol,协议可以继承别的协议,协议可以有多个用逗号分隔<p1 ,p2>。协议中不能有成员变量。

@protocol MyProtocol <NSObject>
-(void) read;
-(void)write;
@end</span>

定义一个MyProtocol协议继承自NSObject协议,我们也可以使用预编译指令@required和@optional来指定方法是必须实现的还是可选的。

一个类可以实现多个协议。我们再定义一个协议类Media.h

#import <Foundation/Foundation.h>

@protocol Media <NSObject>
-(void)playmusic;
-(void)playvideo;
@end

定义一个Mobile类继承子这两个协议

#import <Foundation/Foundation.h>
#import "MyProtocol.h"
#import "Media.h"
@interface Mobile : NSObject<Media, MyProtocol>
@end

实现Mobile类

#import "Mobile.h"

@implementation Mobile
-(void)read{
    NSLog(@"read");
}
-(void)write{
    NSLog(@"write");
}
-(void)playmusic{
    NSLog(@"playmusic");
}
-(void)playvideo{
    NSLog(@"playvideo");
}
@end
时间: 2024-11-05 17:32:08

Objective C协议的相关文章

objective C中继承、协议、分类和多态的实现

第一.objective C中继承的实现 在oc中只有实例变量会有权限控制,实例方法和类方法是没有权限控制的,这点与c++不同,OC默认的是protected,并且在声明权限控制时,没有分号 在OC中可以像C++一样用指针运算法来访问实例变量 Rectangle.h 文件代码: #import <Foundation/Foundation.h> @interface Rectangle : NSObject { int _width; int _height; } @property (non

ios消息的交互方式

注意这些都是界面回传(即从第二个界面传到第一个界面,从第一个界面传到第二个界面的时候用第二个界面的属性即可) iOS消息的交互方式有4种,分别为:通知,代理,block,kvo 现在我们对这个4中方式分别做详细的介绍 通知 //1通知的发送平台(信息的发布者) [[NSNotificationCenter defaultCenter] postNotificationName:@"enterTicket" object:nil userInfo:@{@"index"

Objective-C( Category 分类,非正式协议,分类延展)

分类: 主要是给原来类增加一些方法;不可以增加成员变量 Person (Person+eat) 非正式协议: 非正式协议就是类别,即凡是NSObject或其子类Foundation框架中的类增加的类别,都是非正义协议 给NSObject写一个类别,NSObject 类名(eat),NSObject子类都可继承里面的方法 分类(category)延展 延展类别又称类的扩展: @interface Person类别 (空的)// 类扩展 { // 可以添加属性 int _age: } // 扩充方法

Objective中的协议(Protocol)

作用: 专门用来声明一大堆方法. (不能声明属性,也不能实现方法,只能用来写方法的声明). 只要某个类遵守了这个协议.就相当于拥有这个协议中的所有的方法声明. 协议的声明: @protocol 协议名称 <NSObject> //方法的声明; @end 新建1个协议的方式. NewFile OC-File - protocol 协议的文件名: .h 并且只有1个.h文件. 在协议中,只能用来声明方法,协议的作用:就是专门用来写方法声明的. 类遵守协议: 如果想要让1个类,拥有协议中定义的所有的

Objective-C( protocol协议)

protocol 协议 protocol:用来声明方法 1.协议的定义 @protocol 协议名称 <NSObject> // 方法声明列表.... @end 2.如何遵守协议 1> 类遵守协议 @interface 类名 : 父类名 <协议名称1, 协议名称2> @end 2> 协议遵守协议 @protocol 协议名称 <其他协议名称1, 其他协议名称2> @end 3.协议中方法声明的关键字 1> @required (默认) 要求实现,如果没

Objective - C 之协议

一.创建方法: 二.实现过程: 1.遵循协议: @protocol NurseWorkingProtocol <NSObject>   //<> 表示遵守协议,创建时就有(NurseWorkingProtocol.h中) 2.协议内容:(NurseWorkingProtocol.h中) @required  // 必须做的,默认 - (void)cleanHouse; @optional  // 可选的 - (void)cook; 3.指定遵循协议的人:(Nurse.h中) @in

Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)

Qt/C++开发人员眼中的Obj-C 对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这篇博客的内容,我将描写叙述诸多我所学到的东西.这将很多其它的是大脑转存而不是单一的教程 ,所以我仍然希望这将对你非常有帮助,我将首先写编程语言的差异,然后再写关于类库的差异 1.Objective C vs C vs C++ 类似于C++,Obj-c是C语言的一个超集(这不是100%正确的,可是一个足够好的语

iOS开发——OC篇&amp;协议篇/NSCoder/NSCoding/NSCoping

协议篇/NSCoder/NSCoding/NSCoping 协议声明类需要实现的的方法,为不同的类提供公用方法,一个类可以有多个协议,但只能有一个父类,即单继承.它类似java中的接口. 正式协议(formal protocol)------------------------------------------------------------------------------------声明正式协议使用@protocol指令,以@end结尾. @protocol MyXMLSupport

iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象

1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较.这一篇文章,我准备为大家介绍一下奇葩的Objective-C语言的语法和使用.这篇文章主要讲Objective-C的理论概念. 2.学习目标 2.1 Objective-C语言面向对象的特性与其他语言(C++)类比学习,声明定义一个MyObject类,并创建这个类的实例. 2.2 Objectiv