自定义构造方法
@interface Person : NSObject
@property NSString *name;
@property int age;
- (id)initWithName:(NSString *)name;
- (id)initWithAge:(int)age;
- (id)initWithName:(NSString *)name andAge:(int)age;
@end
#import "Person.h"
@implementation Person
- (id)init
{
if ( self = [super init] )
{
_name = @"Jack";
}
return self;
}
- (id)initWithName:(NSString *)name
{
if ( self = [super init] )
{
_name = name;
}
return self;
}
- (id)initWithAge:(int)age
{
if ( self = [super init] )
{
_age = age;
}
return self;
}
- (id)initWithName:(NSString *)name andAge:(int)age
{
if ( self = [super init] )
{
_name = name;
_age = age;
}
return self;
}
@end
#import "Person.h"
@interface Student : Person
@property int no;
- (id)initWithNo:(int)no;
- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no;
@end
#import "Student.h"
@implementation Student
- (id)initWithNo:(int)no
{
if ( self = [super init] )
{
_no = no;
}
return self;
}
- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no
{
if ( self = [super initWithName:name andAge:age])
{
_no = no;
}
return self;
}
- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no
{
if ( self = [super init] )
{
_no = no;
self.name = name;
self.age = age;
}
return self;
}
@end
#import "Person.h"
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Student *p = [[Student alloc] initWithName:@"Jim" andAge:29 andNo:10];
NSLog(@"00000");
}
return 0;
}