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 |
|