黑马程序员技术交流社区
标题:
iOS中有哪些方法可以代替多继承问题?
[打印本页]
作者:
半度微凉
时间:
2015-9-7 14:54
标题:
iOS中有哪些方法可以代替多继承问题?
iOS中是不存在多继承的,但是有哪些方法可以代替多继承问题?可以的话请举个例子,谢谢了
作者:
408205555
时间:
2015-9-7 14:54
在目前官网所给视频中,要想实现楼主所说的代替多继承的问题,只有使用协议了。
协议只需要声明方法,谁遵守了这个协议谁就去实现协议中的方法。
iOS中只可以单继承,却可以遵守多个协议。例子如下:(代码是我现写的)
@protocol playGameProtocol <NSObject>
-(void)playLoL;
-(void)playDota;
@end
@protocol studyProtocol <playGameProtocol>
-(void)learnC;
-(void)learnJAVA;
@end
@interface Person <studyProtocol>
@end
@implementation Person
-(void)playLoL{
NSLog(@"person play lol");
}
-(void)playDota{
NSLog(@"person play dota");
}
-(void)learnC{
NSLog(@"person learn c");
}
-(void)learnJAVA{
NSLog(@"person learn java");
}
@end
Person遵守了studyProtocol协议,studyProtocol协议遵守了playGameProtocol协议。
所以Person必须要实现以上两个协议中所要定义的方法。
因为方法没有关键字修饰所以是必须要实现的。
如果要想让方法可实现可不实现,可用@optional来修饰方法。
协议中只可以定义方法不可以定义成员变量。
就这些。
作者:
你说呢
时间:
2015-9-8 19:58
没有多继承 可以多级继承啊
作者:
wu199309023
时间:
2015-9-8 22:39
楼上的哥们说的是java
ios好像可以多继承
作者:
Java_EE
时间:
2015-9-11 22:52
顶一个,
作者:
zq110105
时间:
2015-9-13 11:12
其实我觉得协议和多继承挺像的
作者:
caiyao
时间:
2015-9-13 22:13
使用接口可以实现多继承
作者:
木子青
时间:
2015-9-19 22:52
协议+强制实现关键字=接口
作者:
f1gogo
时间:
2015-9-20 20:58
协议,protocol
作者:
liminghui
时间:
2015-9-24 10:14
学习了!~····
作者:
Jusive
时间:
2015-9-25 06:43
用接口啊 协议+强制实现关键字=接口
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2