2012-05-21 32 views
0

經過一番研究,我找不到超類,所以我決定在這裏問。CCSprite的超類

@interface superClass : CCSprite 
@end 

@interface subClass : superClass 
@end 

如何上面的兩個例子之間的相互關係?另外,我被證明可以在superClass中添加一個方法,然後在子類中使用它(如何?)?

+0

你」會發現這有幫助:https://developer.apple.com/library/mac/#documentation/cocoa/Conceptual/ObjectiveC/Chapters/ocDefiningClasses.html – LearnCocos2D

回答

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]來調用父類的方法實現

+0

我猜,subClass和superClass將是兩個單獨的文件,如:subClass.h,superClass.h,他們的.m文件呢? – akuritsu

+0

是的。通常每個類都有一個.h和.m文件 –