【发布时间】:2011-07-01 02:42:56
【问题描述】:
我想知道是否可以访问在父类中声明的方法,该方法已被覆盖(如果我犯了任何错误,请原谅我的英语)。代码sn-p:
#import <stdio.h>
#import <objc/Object.h>
@interface Parent : Object
-(void) message;
@end
@implementation Parent
-(void) message
{
printf("\nParent\n");
}
@end
@interface Child : Parent
//-(void) message;
@end
@implementation Child
-(void) message
{
printf("\nChild\n");
}
@end
int main(int argc, const char* argv[])
{
Parent* p = [[Child alloc] init];
[p message];
[p free];
return 0;
}
所以我的问题是,当 Parent* 指针指向 Child 对象时,如何调用父类中定义的“消息”方法。 Objective-C(纯动态语言)会自动调用 Child 的方法,但是是否可以通过 *p 指针从外部调用父类的方法?我的意思是,当我将消息“消息”发送到“p”时,屏幕上会显示“孩子”而不是“父母”。
谢谢。
【问题讨论】:
标签: objective-c inheritance methods overriding parent