objective-c中的Super



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



二、实例情境我们看如下实例:
我们准备定义一个僵尸类,然后下面的各种跳跃僵尸、舞王僵尸、铁桶僵尸会继承上面的这个僵尸类作为父类。

#import <Foundation/Foundation.h>

@interface Zoombie : NSObject                                                                               //   僵尸类
- (void)walk;
+ (void)test;         //  声明类方法test
- (void)test; //  声明对象方法walk和 test
@end

@implementation Zoombie
- (void)walk
{
NSLog(@"往前挪两步******");                                                                                  //  对象方法walk的实现
}
+ (void)test
{
NSLog(@"Zoombie+test"); //类方法test的实现
}
- (void)test
{
NSLog(@"Zoombie-test");         //对象方法test的实现
}
@end


@interface JumpZoombie : Zoombie//  跳跃僵尸  继承了 僵尸类
+ (void)haha;       //声明了类方法haha
- (void)haha2;//声明了对象方法haha2
@end


@implementation JumpZoombie

+ (void)haha   //  实现类方法haha
{
[super test];       //调用super关键字,因为其处于类方法中,所以调用父类的类方法
}
- (void)haha2
{
[super test];    //  调用super关键字,因为其处于对象方法中,所以调用父类的对象方法
}

- (void)walk //  重写父类方法walk。
{
NSLog(@"跳两下");        // 因为跳跃僵尸,一般是跳两下之后,再往前走,所以需要重写该方法
[super walk];       //  此处如果写[self walk] 系统会寻找当前对象的walk方法,会死循环。
//NSLog(@"往前挪两步----");                                                                // 走两下(直接调用父类的walk方法更方便)。
}
@end

int main()
{
//[JumpZoombie haha];
JumpZoombie *jz = [JumpZoombie new];

[jz haha2];

return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值