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

ios开发-OC面向对象的三个特性-继承和组合的学习

2015-03-14 22:56 197 查看
之前,我学习了面向对象的三个特性之一-封装,今天学习继承,下面是具体内容:

一.继承:

 1.继承的好处:

 1)抽取重复代码

 2)建立了类之间的关系

 3)子类可以拥有父类中的所有成员变量和方法

 2.在子类中有部分父类的元素的情况,尽量使用组合;

 3.super的作用

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

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

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

  3)使用场合:子类重写父类的方法时想保留父类的一些行为

下面,引用MJ一个经典的案例,来理解继承这个特性:

@interface Animal : NSObject
{
    int _age;
    double _weight;
}

- (void)setAge:(int)age;
- (int)age;

- (void)setWeight:(double)weight;
- (double)weight;
@end

/********Animal的实现*******/
@implementation Animal
- (void)setAge:(int)age
{
    _age = age;
}
- (int)age
{
    return _age;
}

- (void)setWeight:(double)weight
{
    _weight = weight;
}
- (double)weight
{
    return _weight;
}
@end

/********Dog*******/
// : Animal 继承了Animal,相当于拥有了Animal里面的所有成员变量和方法
// Animal称为Dog的父类
// Dog称为Animal的子类
@interface Dog : Animal
@end

@implementation Dog
@end

/********Cat*******/
@interface Cat : Animal
@end

@implementation Cat
@end

int main()
{
    Dog *d = [Dog new];
    
    [d setAge:10];
    
    NSLog(@"age=%d", [d age]);
    return0;
}

//组合
@interface Dog1 : NSObject
{

    Animal *a;//组合,定义一个父类的指针变量
}

@end

总结:
要熟记继承使用的场合,可以大大的减少代码量,使用的时候注意组合的使用.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针 黑马程序员 ios
相关文章推荐