У меня есть два класса Objective-C, и один получен из другого как
@interface DerivedClass : BaseClass
{
}
Секция кода ниже принадлежит BaseClass:
- (id)init {
if (self = [super init]) {
[self configure];
}
return self;
}
- (void) configure{} //this is an empty method
А секция кода принадлежит DerivedClass:
-(void) configure{
NSLog(@"derived configure called");
}
Теперь, когда я говорю derivedInstance = [DerivedClass new];
и наблюдаю за стеком вызовов, я вижу, что метод configure
моего производного класса вызывается в строке [self configure]
метода init
базы.
Я новичок в Objective-C, и меня смущает, как метод производного класса вызывается из метода базового класса. Ключевое слово "self
" объясняется тем же, что и ключевое слово "this
" некоторых языков, но я думаю, что это объяснение не совсем корректно, верно?