Objective-C面向对象初步归纳

来源:互联网 发布:软件软件下载 编辑:程序博客网 时间:2024/06/15 18:37

封装

定义一个类时,可以为类中的成员变量设定调用范围,使其不能被其他类访问,可以通过封装的方法对其操作,调用一个方法然后方法给你出结果,就相当于这个过程  这就是封装性 ,你不需要知道具体过程是怎么实现的 ,你只需要关心结果是否正确就行。get、set是封装的重要体现。

继承

继承是描述事物之间的所属关系,例如猫狗都属于动物,在程序中猫狗继承动物这个类,猫狗就能拥有动物中的属性(成员变量、方法等)
继承父类的语法格式 :@interface 子类名:父类名
与其他语言类似,oc也可以对父类的方法进行重写,要求是子类重写父类方法时 返回值 方法名 参数必须相同,并且访问权限不能比父类的方法更低。
有时重写父类方法后,父方法会被覆盖,这时可以使用 super 关键字,让父类方法中的语句和子类同时执行。
super语法格式:  [super 方法名:参数列表]

多态

当两个对象拥有同一个父类的时候,oc为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据不同子类的对象特征,得到不同的结果。
示例:
创建父类Animal,两个子类Dog和Cat。 他们都有shout的方法。
shout方法分别输出 动物叫、狗叫、猫叫。
在main中创建一个call的函数,传入一个Animal的类型参数。
void call(Animal animal)
[animal shout]

//实例化Dog和Cat
Animal *dog =[[Dog alloc]init];
Animal *cat =[[Cat  alloc]init];
call(dog);
call(cat);
输出结果便分别拥有子类的特性:
狗叫
猫叫

对象的类型转换

类似于java的强转:
Animal  *dog = [[Dog alloc]init];

此时无法访问到Dog类中的特有的方法,当Animal类 指针变量指向新创建的Dog对象后,Dog对象会被当成Animal使用

类型转换格式 Dog *dog = (Dog *)dog;

0 0
原创粉丝点击