I am practicing inheritance in Objective-C and this is my Person parent class
// This is Person.h
@interface Person : NSObject
@property(nonatomic, strong) NSNumber *age;
@property(nonatomic, strong) NSString *race;
-(instancetype)init;
-(instancetype)initWithAge:(NSNumber*)age andRace:(NSString*)race;
@end
This is what I'm trying to do in my Student class
// This is Student.h
#import "Person.h"
@interface Student : Person
@property(nonatomic, strong) NSString *classification;
@property(nonatomic, strong) NSString *major;
@end
And
// This is Student.m
#import "Student.h"
#import "Person.h"
@implementation Student
-(instancetype)init
{
return [self initWithClassification:@"Freshman" andMajor:@"Computer Science"
andAge:[[NSNumber alloc] initWithInt:20] andRace:@"Caucasian"];
}
-(instancetype)initWithClassification:(NSString*)classification andMajor:(NSString*)major
andAge:(NSNumber*)age andRace:(NSString*)race
{
self = [super init];
if (self)
{
_classification = classification;
_major = major;
_age = age;
_race = race;
}
return self;
}
@end
The compiler is not liking my doing _age = age; _race = race;
Use of undeclared identifier _age did you mean age? Can someone tell me where I went wrong? Thank you.