OC里的接口介绍协议(category)
面向对象的语言,继承应该都是单继承的,一个子类只能有一个父类,一下出来两个爹,这谁受得了
实现接口可以实现多个,接口只是一种行为规范,实现一种行为规范意味着这个类具有了某种能力,一个类具有多种行为能力当然是可以的,也是应对需求变更时的主要手段。
多态更多是源于继承,它使得一个类在不同的环境下可以展现不同的功能。声明一个父类变量,实现它的子类赋给它,这样这个子类在某些环境下可以当做父类使用(因为它继承父类),也可以在其他场合使用父类没有的功能(子类往往会增加自己的功能或者重写父类的方法)这是多态最基本的使用
当然实现接口也可以达到多态的应用
PS:OC中的接口(协议)可以选择性的实现,不像C#中的接口,如果实现了一个接口,那么接口中声明的所有方法,甭管是否需要全部都得实现,这样很容易造成接口污染 |