您的位置:首页 > 移动开发 > IOS开发

漫步IOS--OC的面向对象的封装和继承

2015-01-10 19:42 169 查看
OC是一门面向对象的语言,所以和Java一样,面向对象所具有的三大特性他也是必定具备的,多态暂且不提,先解释一下封装和继承。

1 封装

个人理解,所谓的封装性,见名知意,即保护自身的方法和属性不被不该的人看见和使用。也可以理解为控制对于我们的类的操作权限。

实现思路:

实现思路就是配合访问权限标记将不想让外人看见的部分(变量和方法)进行隐藏,然后在合适的地方提供一个我们写好的方法对其进行访问。

实现方法:

将想隐藏的变量声明为protected或者private类型。这样就只能自己或者子类看见了。然后提供公有的方法限制对自己变量的操作。

将想隐藏的方法声明和定义都写在.m文件里,这样别人引入.h文件的时候就看不到我们写到的方法了,自然对于调用也就无从下手了。

2 继承

个人理解,所谓继承性,亦是见名知意,即从另一处接收一部分可用资源作为自己的资源。这个资源可以是变量,可以是方法。

接收者是子类,被接收者是父类。OC里面也是‘单继承多实现’。

实现思路:在OC中指定父类很简单,只需在类定义文件后面加一句就行

@interface Class11 : NSObject


和Java一样,子类通过super调用父类方法和参数。也可通过self代指自身。

所谓的完整初始化方法:就是在初始化的时候调用父类的初始化方法,然后再对自身的属性进行初始化赋值。

继承搜索:
调用一个方法,首先去子类搜索,如果出现了解决的方法(即 子类重写了父类的方法)那么调用子类的方法。如果没有,那么去父类中寻找对应的方法,再执行。如果一直找到最后都没有对应的解决方法,那么,报错。

如果在头文件里定义了,但是在.m文件里没有实现,就说没有处理这个方法,那么在编译的时候并不会报错,这是因为IOS的消息发送机制,消息发送过去并没有规定必须可以执行。但是在执行的时候发现没有可以处理的方法,那么就会报错,也就是运行时会崩溃。所以在处理的时候就要加大量判断。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: