继承的语法如下,冒号后的标识符是需要继承
@interface Circle : NSObject
1.不支持多继承
要注意的是OC只支持单继承,如果要实现多继承的话,可以通过类别和协议的方式来实现,这两种方法将在后面进行介绍。
2.Super关键字
OC提供某种方式来重写方法,并且仍然调用超类的实现方式。当需要超类实现自身的功能,同时在前面或后面执行某些额外的工作时,这种机制非常有用。为了调用继承方法的实现,需要使用super作为方法调用的目标。下面是代码示例:
@implementation Circle
-(void)setFillColor: (ShapeColor) c
{
if (c== kRedColor){
c = kGreenColor;
}
[super setFillColor: c];
}
@end
Super来自哪里呢?它既不是参数也不是实例变量,而是由OC编译器提供的某种神奇功能。向super发送消息时,实际上是在请求OC向该类的超类发送消息。如果超类中没在定义该消息,OC将按照通常的方式在继承链中继续查找对应的消息。
|
|