黑马程序员技术交流社区

标题: Object-C学习笔记2-继承 [打印本页]

作者: meijinyu    时间: 2014-12-3 18:57
标题: Object-C学习笔记2-继承
2>继承
->继承的格式: A类 :B类。A类继承了B类,即A类拥有了B类的所有属性和方法。A类称为子类,B类称为父类(超类)
例如:
@interface animal :NSObject
{
        int weight; // 体重
        char curColor; // 毛色
}
- (void)eat;
@end

@interface bird : animal
{
        char *name; // 名字
}
- (void)fly;
@end
现在bird 继承了animal 的所以属性和方法,现在bird类相当于:

@interface bird :NSObject
{
        int weight; // 体重
        char curColor; // 毛色
        char *name; // 名字
}
- (void)eat;
- (void)fly;
@end

继承使用场合:两个类具有符合逻辑关系,且具有包含关系。
优点:具有相同属性和方法抽象成一个类,使用继承关系,避免重复写代码,提高效率。
        类的访问采取就近原则,逐级访问。
缺点:类之间的耦合性太强,某个类缺失会影响以后所以的类。
注意:继承与组合的区别:
        ->组合:将两个类合并在一起,两个类之间没有太强的逻辑关系。
例如:

        //分数类
        @interface Score :NSObject
{
                int _cScore;
                int ocScore;       
}
@end


        //学生类
@interface Person :NSObject
{
                int weight;
                char *name;       
                Score *score; // 定义分数类变量,这句就是组合的用法
}
- (void)study;
@end



        相当于:
        @interface Person :NSObject
{
                int weight;
                char *name;       
                int _cScore;
                int ocScore;
}
- (void)study;
@end
作者: 丶有果灬    时间: 2014-12-3 20:31
加油,努力!
作者: meijinyu    时间: 2014-12-4 11:58
丶有果灬 发表于 2014-12-3 20:31
加油,努力!

谢谢,嘿嘿




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2