2 回答

TA貢獻(xiàn)1847條經(jīng)驗 獲得超7個贊
我的經(jīng)驗法則是:如果您要進(jìn)行與初始化相關(guān)的操作,請始終先調(diào)用超類的方法(如果要完全調(diào)用它)。這使超類有機(jī)會進(jìn)行以后在方法中可能要依賴的任何設(shè)置。如果您要進(jìn)行與破壞相關(guān)的操作,請最后調(diào)用超類的方法。這樣可以確保在整個方法執(zhí)行過程中都可以依賴對象的狀態(tài)。最后,根據(jù)具體情況處理其他情況。例如,如果要處理事件,則可能要先處理該事件,并且僅在您選擇不處理該事件或以某種方式對其進(jìn)行了更改并希望將其傳遞給事件時才調(diào)用超類的方法。鏈。

TA貢獻(xiàn)1796條經(jīng)驗 獲得超10個贊
假設(shè)您有2個班級,一個父母和一個孩子。子級從父級繼承。他們有一個叫做greet的方法,該方法返回一個字符串。
父方法如下所示:
碼:
-(NSString *)greet {
return @"Hello";
}
我們希望孩子向父母學(xué)習(xí)。因此,我們用super表示問候,媽媽會打招呼,但也有一些自己的補(bǔ)充。
代碼://從父類繼承
-(NSString *)greet {
NSString *parentGreeting = [super greet];
return [parentGreeting stringByAppendingString:@", Mommy"]
}
因此,現(xiàn)在父母打招呼“你好”,孩子打招呼“媽媽你好”。稍后,如果我們更改父母的問候,只返回“嗨”,那么這兩個課程都會受到影響,您將獲得“嗨”和“嗨,媽媽”。
super用于調(diào)用超類定義的方法。它用于訪問已被子類覆蓋的方法,以便該類可以將其自己的代碼包裝在其父類實現(xiàn)的方法周圍。如果您要進(jìn)行任何繼承都非常方便。
- 2 回答
- 0 關(guān)注
- 606 瀏覽
添加回答
舉報