【发布时间】:2014-08-13 17:32:04
【问题描述】:
例如,假设我有一辆带有以下 .h 的类车:
Car.h
@interface Car : Automobile
@property Engine * V6;
-(void)igniteEngine:(int) key;
-(void)StopEngine;
@end
现在我有一个带有 .m 文件的类别 Car(Test)
汽车(测试).m
@implementation Car(Test){
Oil * testingOil;
}
...
@end
我想通过以下方式覆盖一个函数
-(void)igniteEngine:(int) key //inside test
{
[self applyTestingOil];
[(reference to original class) igniteEngine:key];
}
我该怎么做呢? 如果有解决这个问题的不同方法也会有帮助
【问题讨论】:
-
1) 您不能将 ivars 添加到类别中。 2) 当一个类别覆盖原始类中的方法并且无法调用原始覆盖的方法时,这是未定义的行为。
标签: objective-c polymorphism overriding objective-c-category class-hierarchy