我有两个班级:
player
,其属性为name
computer
如何通过访问基类属性来设置计算机播放器的名称?
基类
@interface Player : NSObject
@property (nonatomic) NSString* playerName;
@property (nonatomic) int score;
-(id) initWithName :(NSString*) playerName;
-(void) addScore:(int) points;
@end
子类
@interface Computer : Player
@end
的.m
#import "Computer.h"
@implementation Computer
-(id)initWithName:(NSString *)name{
self = [super init];
}
@end
答案 0 :(得分:0)
你的问题很难解决,所以如果我回答了你所要求的问题,请告诉我。
假设你有一个类,汽车,继承了超级类,车辆,并且该车具有属性轮子,你可以通过这种方式获得:
super.wheels = 4;
答案 1 :(得分:0)
在Computer
类中调用该属性,如
super.name = @"Bob";
您也可以使用
调用superClass的方法super.myMethod();
答案 2 :(得分:0)
您可以直接从子类中的超类访问该属性。
Player.h
@interface Player : NSObject
@property(nonatomic, copy) NSString *name;
- (instancetype)initWithName:(NSString *)name;
@end
Computer.h
@interface Computer : Player
@end
Computer.m
@implementation Computer
- (instancetype)initWithName:(NSString *)name {
self = [super initWithName:name];
if (self) {
self.name = @"test";
}
return self;
}
@end
尽管如@Phillip Mills建议的那样,在Player.m中设置name属性可能是更好的做法。