super關(guān)鍵字

super的作用:

直接調(diào)用父類中的某個(gè)方法

super處在對(duì)象方法中,那么就會(huì)調(diào)用父類的對(duì)象方法,super處在類方法中就會(huì)調(diào)用父類的類方法

使用場(chǎng)合:

子類重寫父類的方法時(shí)想保留父類的一些行為

方法的重寫:

可以改變子類從父類繼承的行為

被重寫的方法定義必須與父類中的定義一致

實(shí)例:

非常出名的僵尸案例



main.m

/*

super關(guān)鍵字的作用:

1>可以直接調(diào)用父類中的某個(gè)方法(對(duì)象方法、類方法)

2>super處在對(duì)象方法中,那么就會(huì)調(diào)用父類的對(duì)象方法

3>super處在類方法中,那么就會(huì)調(diào)用父類的類方法


使用場(chǎng)合:子類重寫父類的方法時(shí)想要保留一些父類的行為

*/

/*

僵尸:

跳躍僵尸、盾牌僵尸

*/

#import <Foundation/Foundation.h>

#import "Zombie.h"

#import "JumpZombie.h"

int main(int argc, const char * argv[])

{

Zombie *z = [Zombie new];

//? [z walk];

JumpZombie *jz = [JumpZombie new];

[jz walk];

[jz test];? //? 對(duì)象-test方法

[JumpZombie test]; //? 子類+test方法

return 0;

}


Zombie.h

#import <Foundation/Foundation.h>

@interface Zombie : NSObject

- (void)walk;


- (void)test;

+ (void)test;

@end


Zombie.m

#import "Zombie.h"

@implementation Zombie

- (void)walk

{

NSLog(@"挪動(dòng)了幾步,調(diào)用了父類的方法");

}


- (void)test

{

NSLog(@"調(diào)用了-test方法");

}

+ (void)test

{

NSLog(@"調(diào)用了+test方法");

}

@end


JumpZombie.h

#import <Foundation/Foundation.h>

@interface JumpZombie : Zombie

@end


JumpZombie.m

#import "JumpZombie.h"

@implementation Zombie

- (void)walk

{

NSLog(@"跳動(dòng)兩步,調(diào)用了子類的方法");

//? NSLog(@"挪動(dòng)了幾步");

[super walk];

}


- (void)test

{

[super test];

}

+ (void)test

{

[super test];

}

@end


Person.h

#import <Foundation/Foundation.h>

@interface NSobject : Person

- (void)run;

@end


Person.m

#import "Person.h"

@implementation Person

- (void)run

{

NSLog(@"跑起來");

[super ]

}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Objective-C 是一門動(dòng)態(tài)語言,這就意味著消息傳遞和類以及對(duì)象的創(chuàng)建都在運(yùn)行時(shí)完成,這個(gè)核心的庫是由 C\...
    valentizx閱讀 674評(píng)論 0 1
  • 第3章 super關(guān)鍵字3.1 子父類中構(gòu)造方法的調(diào)用在創(chuàng)建子類對(duì)象時(shí),父類的構(gòu)造方法會(huì)先執(zhí)行,因?yàn)樽宇愔兴袠?gòu)造...
    葡小萄家的貓閱讀 363評(píng)論 0 0
  • 在了解到runtime的知識(shí)后,有人會(huì)問self和super是怎么來的,有什么作用,當(dāng)然想都不想就說self是指自...
    幻影快快跑閱讀 872評(píng)論 6 5
  • 現(xiàn)在有Person類Consumer類(繼承Person類)和Test類,需求:實(shí)例化Consumer,并給use...
    涎涎閱讀 322評(píng)論 0 0
  • 什么是super? super代表的是當(dāng)前子類對(duì)象中的父類型特征。 什么時(shí)候使用super? 子類和父類中都有某個(gè)...
    你的小董閱讀 103評(píng)論 0 0

友情鏈接更多精彩內(nèi)容