如何从子类访问基类的属性

时间:2015-02-05 18:13:26

标签: ios xcode

我有两个班级:

  • 基类为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

3 个答案:

答案 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属性可能是更好的做法。