经过一番研究,我在超级类上找不到任何东西,所以我决定在这里问。
例子
@interface superClass : CCSprite
@end
@interface subClass : superClass
@end
上述两个示例如何相互关联?另外,我被告知您可以在超类中添加一个方法,然后在子类中使用它(如何?)?
经过一番研究,我在超级类上找不到任何东西,所以我决定在这里问。
例子
@interface superClass : CCSprite
@end
@interface subClass : superClass
@end
上述两个示例如何相互关联?另外,我被告知您可以在超类中添加一个方法,然后在子类中使用它(如何?)?
CCSprite
是的超类superClass
superClass
是的超类subClass
在超类中有两种使用方法的方法,例如
@interface superClass : CCSprite
- (void)doSomething;
- (id)somethingElse;
@end
@implement superClass
- (void)doSomething {
NSLog( @"do something in super class" );
}
- (id)somethingElse {
return @"something else in super class";
}
@end
@interface subClass : superClass
- (void)doSomethingTwice;
@end
@implement subClass
- (void)doSomethingTwice {
[self doSomething];
[self doSomething];
}
- (id)somethingElse {
id fromSuper = [super somethingElse];
return @"something else in sub class";
}
@end
subClass sub = [[subClass alloc] init];
[sub doSomethingTwice]; // this will call `doSomething` implemented is superClass twice
NSLog([sub somethingElse]); // this will call `somethingElse` in super class but return "something else in sub class" because it override it
基本上你可以在子类的实例上调用超类中实现的方法
并且您可以覆盖子类中的方法以执行不同的操作和/或使用[super methodName]
调用超类中的方法实现