A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© meijinyu 中级黑马   /  2014-12-3 18:57  /  620 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

2 个回复

倒序浏览
加油,努力!
回复 使用道具 举报

谢谢,嘿嘿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马