OC学习:OC中实现多继承
2015-08-07 17:59
387 查看
第一种非协议:将classA类和classB类作为classC类中的属性。
在classC中
#import <Foundation/Foundation.h>
#import "ClassA.h"
#import "ClassB.h"
@interface ClassC : NSObject
@property (nonatomic,strong) ClassA *aClass;
@property (nonatomic,strong) ClassB *bClass;
-(id) init;
@end
#import "ClassC.h"
@implementation ClassC
@synthesize aClass =_classA,bClass = _classB;
//重新初始化方法,给类属性添加对象
-(id) init{
if (self = [super init]) {
self.aClass = [ClassA new];
self.bClass = [ClassB new];
}
return self;
}
@end
第二种协议:在OC中用协议实现多继承
1.建立CLassA 类
#import <Foundation/Foundation.h>
@interface ClassA : NSObject
@property (nonatomic,assign) NSInteger ID;
@end
//在ClassA.h文件中定下协议
@protocol ClassAProtocol <NSObject>
//在ClassB.h中定义属性
@property (nonatomic,strong) ClassA *aClass;
@end
2.建立CLassB 类
#import <Foundation/Foundation.h>
@interface ClassB : NSObject
//在ClassB.h中定义属性
@property (nonatomic,strong) NSString *name;
@end
//在ClassB.h中定下协议ClassBProtocol
@protocol ClassBProtocol <NSObject>
@property (nonatomic,strong) ClassB *bClass;
@end
3.建立CLassC 类
#import <Foundation/Foundation.h>
#import "ClassA.h"
#import "ClassB.h"
//在ClassC 中实现协议
@interface ClassC : NSObject <ClassAProtocol,ClassBProtocol>
-(id) init;
@end
#import "ClassC.h"
//在ClassC.m文件中实现协议方法
@implementation ClassC
@synthesize aClass =_classA,bClass = _classB;
//重新初始化方法,给类属性添加对象
-(id) init{
if (self = [super init]) {
self.aClass = [ClassA new];
self.bClass = [ClassB new];
}
return self;
}
@end
在classC中
#import <Foundation/Foundation.h>
#import "ClassA.h"
#import "ClassB.h"
@interface ClassC : NSObject
@property (nonatomic,strong) ClassA *aClass;
@property (nonatomic,strong) ClassB *bClass;
-(id) init;
@end
#import "ClassC.h"
@implementation ClassC
@synthesize aClass =_classA,bClass = _classB;
//重新初始化方法,给类属性添加对象
-(id) init{
if (self = [super init]) {
self.aClass = [ClassA new];
self.bClass = [ClassB new];
}
return self;
}
@end
第二种协议:在OC中用协议实现多继承
1.建立CLassA 类
#import <Foundation/Foundation.h>
@interface ClassA : NSObject
@property (nonatomic,assign) NSInteger ID;
@end
//在ClassA.h文件中定下协议
@protocol ClassAProtocol <NSObject>
//在ClassB.h中定义属性
@property (nonatomic,strong) ClassA *aClass;
@end
2.建立CLassB 类
#import <Foundation/Foundation.h>
@interface ClassB : NSObject
//在ClassB.h中定义属性
@property (nonatomic,strong) NSString *name;
@end
//在ClassB.h中定下协议ClassBProtocol
@protocol ClassBProtocol <NSObject>
@property (nonatomic,strong) ClassB *bClass;
@end
3.建立CLassC 类
#import <Foundation/Foundation.h>
#import "ClassA.h"
#import "ClassB.h"
//在ClassC 中实现协议
@interface ClassC : NSObject <ClassAProtocol,ClassBProtocol>
-(id) init;
@end
#import "ClassC.h"
//在ClassC.m文件中实现协议方法
@implementation ClassC
@synthesize aClass =_classA,bClass = _classB;
//重新初始化方法,给类属性添加对象
-(id) init{
if (self = [super init]) {
self.aClass = [ClassA new];
self.bClass = [ClassB new];
}
return self;
}
@end
相关文章推荐
- block在页面逻辑处理上的使用,替换代理的功能
- Linux必须会的命令---也是以前记录的,ctrl+z fg 啥的 jobs 比较实用
- 求和求到手软(字符串处理)
- resin4的初次配置与使用
- D-Bus : Transmit a Data Array in Simple and Useful Form
- Web开发入门不得不看
- (十) Advanced Build Customization(高级构建定制)(完)
- Java阅读word程序说明文件
- Ambari安装
- 个人理解Linux文件权限--以前记录的,根据鸟哥的第二版去解释的
- 6、SQL Server 数据查询
- IBM总架构师寇文东谈程序员的职业规划
- 使用ffmpeg视频格式转换、视频截图、视频采集、屏幕录制
- 关于细节
- SWTableViewCell滑动删除表格行
- Spring中如何配置Hibernate事务
- PHP爬虫抓取网页内容 (simple_html_dom.php)
- DDOS介绍
- [转]Redis实现分析
- webService学习记录-01