经过一番研究,我在超级课上找不到任何东西,所以我决定在这里问一下。
示例
@interface superClass : CCSprite
@end
@interface subClass : superClass
@end
以上两个例子如何相互关联?另外,我被证明你可以在superClass中添加一个方法,然后在subClass中使用它(怎么样?)?
答案 0 :(得分:1)
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]
来调用超类中的方法实现