iOS重寫父類中的方法時要先呼叫父類中的方法的原因

2021-07-11 22:01:49 字數 1197 閱讀 3591

現有兩個類:

1.object001繼承自nsobject

#import

@inte***ce

object001 : nsobject

//object001的標頭檔案,我只是在這裡面宣告了個方法

-(void

)printfstring;

@end

#import

"object001.h"

@implementation

object001

//object001的實現檔案,我實現了宣告的printfstring方法,這個方法的作用是在控制台上列印object001字串

-(void

)printfstring

@end

2.object002繼承自object001

#import

"object001.h"

@inte***ce

object002 : object001

//無修改

@end

#import

"object002.h"

@implementation

object002

-(void

)printfstring

@end

#import

"viewcontroller.h"

#import

"object002.h"

@implementation

viewcontroller

//viewcontroller 實現

- (void

)viewdidload

控制台列印如下資訊:

然後在object002類中呼叫父類中的方法再執行一次,控制台列印如下資訊:

對比一下就可以知道:在子類中重寫父類中的方法,如果不呼叫父類中的方法,那麼就不執行父類中的方法,就像重新寫了個名字一樣的方法把父類中的方法覆蓋掉了一樣。

舉個例子:在下面兩個非常常用的方法中,如果不用父類指標呼叫父類中的方法也能執行成功,只是這個物件少了一些行為而已,所以當重寫父類中的方法時一定要先用父類指標(super)呼叫一下父類中的方法。

- (void

)viewdidload -(

void

bool

)animated

重寫父類的方法

重寫父類的方法 子類擴充套件父類 總是以父類為基礎,額外增加新的屬性和方法。但有一種情況例外 子類需要重寫父類的方法。例5.2 子類重寫父類的方法 public class bird public class ostrich extends bird public static void main ...

重寫父類的方法

源 class base public class base1 extends base public static void main string args 執行結果 1.繼承中子類對於父類方法的重寫就是在子類中定義乙個與那個被要重寫的方法相同名字的方法,這樣在子類物件的呼叫中就實現了子類中的方...

python類的繼承及重寫父類方法

寫python有一年多了,平日使用python解決一些問題,調一些介面,用一些框架,雖然不影響都可以寫,但一直沒有好好的花時間去理解python概念性的東西。也許,這也是寫了這麼久一直不能有所進步的原因,從今天起,來重新好好的學習一下python的相關概念。class tree def init s...