黑马程序员技术交流社区

标题: oc多态的问题 [打印本页]

作者: Ye•Ye    时间: 2014-5-6 14:24
标题: oc多态的问题
Object-c的类可以多重继承么?可以实现多个接口么?我看李明杰老师的视频里没有提到接口的概念啊,还是说OC里类的声明就是接口?
作者: 葬花桥    时间: 2014-5-6 15:39
多继承肯定是不行的,OC是单继承,接口的话,还不清楚
作者: 兰闻天    时间: 2014-5-6 16:00
Object-c是单继承的,接口可能就是协议吧
作者: m573555543    时间: 2014-5-6 17:04
Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成oc的多重继承
作者: sabjiang    时间: 2014-5-6 22:46
OC里的接口介绍协议(category)
面向对象的语言,继承应该都是单继承的,一个子类只能有一个父类,一下出来两个爹,这谁受得了
实现接口可以实现多个,接口只是一种行为规范,实现一种行为规范意味着这个类具有了某种能力,一个类具有多种行为能力当然是可以的,也是应对需求变更时的主要手段。
多态更多是源于继承,它使得一个类在不同的环境下可以展现不同的功能。声明一个父类变量,实现它的子类赋给它,这样这个子类在某些环境下可以当做父类使用(因为它继承父类),也可以在其他场合使用父类没有的功能(子类往往会增加自己的功能或者重写父类的方法)这是多态最基本的使用
当然实现接口也可以达到多态的应用

PS:OC中的接口(协议)可以选择性的实现,不像C#中的接口,如果实现了一个接口,那么接口中声明的所有方法,甭管是否需要全部都得实现,这样很容易造成接口污染
作者: .Drenched    时间: 2014-5-6 22:55
OC中是单继承,你所谓的接口是Java语言才有吧。
作者: 郑亚鸽    时间: 2014-5-6 23:07
OC中所有类都是NSObject类的子类,多继承使用protocol委托代理来实现的
作者: Max_骏    时间: 2014-5-7 09:37
OC当然不可以多继承了,它是单继承。另外接口我记得应该java的概念,相当于OC的协议。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2