黑马程序员——OC语言------继承、多态

来源:互联网 发布:网络自由与秩序申论 编辑:程序博客网 时间:2024/05/16 14:30
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

继承

 

一、继承的用法

继承到底有什么作用呢,以创建两种动物Cat和Dog类为例:

// Cat的声明@interfaceCat : NSObject{    @public    int weight;}-(void)eat;@end //Cat的定义@implementationCat-(void)eat{    NSLog(@"吃后体重变为:%d", weight);}@end

 // Dog的声明@interfaceDog : NSObject{    @public    int weight;}-(void)eat;@end // Dog的定义@implementationDog-(void)eat{    NSLog(@"吃后体重变为:%d", weight);}@end

 至此我们发现Cat和Dog两类有相同的属性和行为,所以抽出一个父类Animal(先抽取weight属性,再抽取eat方法)

//Animal的声明@interfaceAnimal : NSObject{    @public    int weight;}-(void)eat;@end //Animal的定义@implementationAnimal-(void)eat{    NSLog(@"吃后体重变为:%d", weight);}@end 

子类在父类的基础上拓充属性和方法,也就是子类继承父类

//Cat的声明@interfaceCat : Animal{    @public    int height;}-(void)jump;@end // Cat的定义@implementationCat-(void)jump{    NSLog(@"跳的高度:%d ",height);}@end

 

//Dog的声明@interfaceDog : Animal{    @public    int speed;}-(void)run;@end //Dog的定义@implementationDog-(void)run{    NSLog(@"奔跑的速度:%d", speed);}@end

注意:

1> 子类和父类不能有相同的成员变量。

2> 父类必须声明在子类前面。

3> 调用某个方法时,优先去当前的类中找,如果找不到,去父类中找。

 

二、继承的专业术语

父类\超类 superclass

子类  subclass\subclasses

 

三、继承的优点与缺点

1.优点

不改变原来模型的基础上,拓充方法

建立了类与类之间的联系

抽取了公共代码

2.缺点

耦合性强

 

四、继承的使用场合

它的所有属性都是你想要的,一般就继承

它的部分属性是你想要的,可以抽取出另一个父类

 

五、super关键字

super的作用:

直接调用父类中的某个方法

super处在对象方法中,那么就会调用父类的对象方法

super处在类方法中,那么就会调用父类的类方法。

 

六、父类方法的重写:

当子类对父类的某一方法的功能需求不满意时,可以对该方法的功能重新定义,这种方式就是重写。重写时不得改变该方法在父类中的声明,方法名不变,只需在当前类中改变方法的功能。重写方法后,当程序在调用该方法时直接调用子类的方法,不再调用父类中对应的该方法。

 

多态

 

一、多态的基本概念

某一类事物的多种形态

OC对象具有多态性

二、形式

Person*p = [Student new];

p->age= 10;

[pwalk];

子类对象赋值给父类指针

父类指针访问对应的属性和方法

三、多态的好处

用父类接收参数,节省代码

四、多态的局限性

不能访问子类的属性(可以考虑强制转换)

 

体会:继承和多态,使得对象的应用更加灵活,也让各类各对象形成一种系统。


0 0
原创粉丝点击