我正在尝试学习objective-c并遇到一些问题。我创建了类 Creature 并使用 Dog 类对其进行了扩展。
但是当我调用方法状态时,返回结果看起来像是从生物类调用的,而不是狗。
github源码链接
ps 如果你发现其他的错误和内存泄漏点,请报告我)
代码:
@interface Creature: NSObject
- (NSString *)state;
..
@implementation Creature
- (NSString *)state
{
return [_name stringByAppendingString: ([self isHungry] ? @" is hungry" : @" not hungry")];
}
// Dog
@interface Dog: Creature
..
@implementation Dog
- (NSString *)state
{
return [[super state] stringByAppendingString: ([self isFriendly] ? @" and friendly" : @" and unfriendly")];
}
和调用方法
Dog *creature = [Dog CreatureBorn];
NSLog([creature state]);