多语言展示
当前在线:1784今日阅读:167今日分享:16

OC初学——语言类别与继承

类别(category)应用非常常见,特别是在为系统类进行扩展的时候,我们可以不用继承系统类,直接给系统类添加方法。最大程度上体现了OC语言的动态性。但是类别只能添加方法不能添加属性。继承(inherit),一个类(子类)继承于另一个类(父类),那么子类不仅拥有父类所有的属性和方法,而且可以创建属于自己的属性和方法。
方法/步骤
1

首先创建一个父类和一个子类

2

定义两个属性三个方法

3

类别(category)应用非常常见,特别是在为系统类进行扩展的时候,我们可以不用继承系统类,直接给系统类添加方法。最大程度上体现了OC语言的动态性。但是类别只能添加方法不能添加属性。继承(inherit),一个类(子类)继承于另一个类(父类),那么子类不仅拥有父类所有的属性和方法,而且可以创建属于自己的属性和方法。以下两种情况只能使用继承,类别无法实现。第一种,新扩展的方法与原方法同名,但是还需要使用父类的实现。因为类别会覆盖原类的实现,无法访问到原来的方法。第二种,扩展类的属性,这个类别无法做到。以下两种情况最好使用类别,第一种,针对系统提供的一些类,例如:NSString,NSArray,NSNumber等类,系统本身不提倡使用继承去扩展方法,因为这些类内部实现对继承有所限制,所以最后使用类别来进行方法扩展。第二种,类别支持开发人员针对自己构建的类,把相关的方法分组到多个单独的文件中,对于大型而复杂的类,这有助于提高可维护性,并简化单个源文件的管理。

4

新建一个类别,用于与继承的对比理解。

5

具体的代码显示

6

假如方法不写在申明类别里,则父类无法调用

推荐信息