[問題] self用法
code
@implementation Dog
- (NSString*) bark {
return @"Woof!";
}
- (NSString*) speak {
return [self bark];
}
@end
@implementation Basenji : Dog
- (NSString*) bark {
return @"";
}
@end
Basenji* b = [Basenji new];
NSString* s = [b speak];
1.這樣是呼叫Basenji class的bark method ,還是呼叫Dog class的bark method
2.為什麼我編譯後是出現Program ended with exit code: 0
而不是字串?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.171.68.185
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1446557811.A.60C.html
推
11/03 21:49, , 1F
11/03 21:49, 1F
→
11/03 21:49, , 2F
11/03 21:49, 2F
→
11/03 21:53, , 3F
11/03 21:53, 3F
Dog.h
#import <Foundation/Foundation.h>
@interface Dog : NSObject
- (NSString*) bark ;
- (NSString*) speak ;
@end
Dog.m
#import "Dog.h"
@implementation Dog
- (NSString*) bark {
return @"Woof!";
}
- (NSString*) speak {
return [self bark];
}
@end
Basenji.h
#import "Dog.h"
@interface Basenji : Dog
- (NSString*) bark;
@end
Basenji.m
#import "Basenji.h"
@implementation Basenji
- (NSString*) bark {
return @"123"; // empty string, Basenjis can't bark
};
@end
main.m
#import <Foundation/Foundation.h>
#import "Dog.h"
#import "Basenji.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Basenji* b = [Basenji new];
NSString* s = [b speak];
NSLog(@" %@ .",s);//修改後
}
return 0;
}
※ 編輯: angelina877 (118.171.68.185), 11/03/2015 22:00:44
推
11/03 22:02, , 4F
11/03 22:02, 4F
→
11/03 22:02, , 5F
11/03 22:02, 5F
→
11/03 22:05, , 6F
11/03 22:05, 6F
→
11/03 22:06, , 7F
11/03 22:06, 7F
→
11/03 22:08, , 8F
11/03 22:08, 8F
→
11/03 22:09, , 9F
11/03 22:09, 9F
→
11/03 22:10, , 10F
11/03 22:10, 10F
[b speak]->[b bark]
這句話看不懂
沒有就會得到Woof,有就會得到123
這句話的意思是
如果我在Basenji class 沒有bark method得到Woof
如果我在Basenji class 有寫bark method得到123
理解對嗎?
※ 編輯: angelina877 (118.171.68.185), 11/03/2015 22:29:51
→
11/03 22:31, , 11F
11/03 22:31, 11F
※ 編輯: angelina877 (118.171.68.185), 11/03/2015 22:41:38
→
11/04 11:29, , 12F
11/04 11:29, 12F
→
11/04 14:12, , 13F
11/04 14:12, 13F
推
11/09 00:18, , 14F
11/09 00:18, 14F
→
11/11 22:12, , 15F
11/11 22:12, 15F
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章