Допустим, у вас есть 2 класса, родитель и ребенок. Ребенок наследует от родителя. У них есть метод greet, который возвращает строку.
Вот как выглядит родительский метод:
Код:
-(NSString *)greet {
return @"Hello";
}
Мы хотим, чтобы ребенок учился у своих родителей. Поэтому мы используем супер, чтобы сказать «приветствуй», как мама будет приветствовать, но и с нашими небольшими дополнениями.
Код: // Наследуется от Родителя
-(NSString *)greet {
NSString *parentGreeting = [super greet];
return [parentGreeting stringByAppendingString:@", Mommy"]
}
Итак, теперь Родитель приветствует «Привет», а Ребенок - «Привет, мамочка». Позже, если мы изменим приветствие родителя, чтобы оно возвращало просто «Привет», то это повлияет на оба класса, и у вас будут «Привет» и «Привет, мамочка».
super используется для вызова метода, определенного суперклассом. Он используется для доступа к методам, которые были переопределены подклассами, чтобы класс мог обернуть свой собственный код вокруг метода, который реализует его родительский класс. Это очень удобно, если вы вообще наследуете.