您的位置:首页 > 移动开发 > Objective-C

Objective - C基础: 第二天 - 11.继承的关键字Super

2015-01-19 00:27 281 查看
在前面, 我们学了继承的一些知识, 现在我们来学习继承的最后一个知识点, 也就是Super关键字, 在这之前, 我们就已经学过一个关键字self, 那么这次的Super又会怎么样呢? 让我们一起来看看~~~

例子:

#import <Foundation/Foundation.h>

@interface Person : NSObject
- (void)run;
@end

@implementation Person
- (void)run
{
NSLog(@"跑步");
}
@end

@interface Student : Person
- (void)eat;
@end

@implementation Student
- (void)eat
{
NSLog(@"吃东西");
}
@end

int main()
{
Student *stu = [Student new];

[stu eat];

return 0;
}

我们看到, 如果我们父类有一个run的方法, 而子类没有, 如果我们要去使用父类的方法, 得花一些时间, 比如重写父类的方法, 或者用其他方法去实现, 但有了Super这个关键之后, 我们就不用这么麻烦了, 比如:

@interface Student : Person
- (void)eat;
@end

@implementation Student
- (void)eat
{
[super run];
NSLog(@"吃东西");
}
@end

Super在这里就是去父类寻找是否有该方法, 如果有就会调用, 如果没有就会继续往上找, 直到找不到报错为止.

Super的作用
1.直接调用父类中的某个方法
2.Super处在对象方法中,那么就会调用父类的对象方法
   Super处在类方法中,那么就会调用父类的类方法
 
3.使用场合: 子类重写父类的方法时想保留父类的一些行为

好了, 这次我们就讲到这里, 下次我们继续~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: