Objective-C没有this关键字,而是用self替代,通常情况下,将self作为类对象,将super作为父类对象即可。OC的函数调用依靠的是消息传递,每个函数都会接收一个隐藏参数self,self代表的仅仅是当前对象,和super都属于消息的目标,所以self在允许时是可以修改的。
Objective-C虽然不支持抽象类,但你可以定义一个方法由子类来具体实现,代码如下。
- (void)subclassOverrideMethod{ [self subclassResponsibility:_cmd]; }
子类调用父类方法,直接使用super关键字即可,代码如下:
- (void)callSuperClassMethod{ [super callSuperClassMethod:arglist]; }