继承
@interface childClass : superClass{
}
- OC中,一个类可以继承另一个类
- 被继承的类成为父类(super class)或超类,继承的成为子类(subclass)
- 子类可以直接使用父类的部分特征和行为(继承),继承具有传递性(若A是B的子类,B是A的子类,那么A也具有C的特征和行为)
- 子类可以重写父类的方法,重写是不需要声明
实例化
//实例化Studentl类的实例对象
Student *student = [[Student alloc] init];
方法的调用
//调用实例方法
[student sayHi];
- (+)类方法:必须用类(名)来调用
- (-)实例方法:必须用对象来调用
初始化
通常以init开头,一个类可以包含多个初始化方法
self、super
- super:将消息发送给父类对象:
- self:将消息发送给本对象
- self始终代表接受消息的对象
指定初始化方法
//指定初始化方法 通常情况下能够赋初始值最多的方法
- (id)initWithName:(NSString *)_name
Age:(NSInteger)_age
Gender:(NSString *)_gender
Number:(NSInteger)_number
Score:(CGFloat)_score
{
//self 指的就是将消息发送给本对象
//super 指的就是将消息发送给父类对象
//[super init]就是将消息init发送给学生类的父类进行执行
self = [super init];
if (self != nil) {
name = _name;
age = _age;
gender = _gender;
number = _number;
score = _score;
}
return self;
}
- 一个类有且只有一个指定初始化方法
- 在众多初始化方法中,无论调用哪个初始化方法,指定初始化方法都会执行
- 指定初始化方法会跟父类初始化方法有一定联系。
自定义初始化方法
- (id)initWithName:(NSString *)_name
{
return [self initWithName:_name Age:0 Gender:nil Number:0 Score:0.0f];
}
- 为对象赋予指定初始值
- 通常以init开头
便利构造器
+ (id)studentWithName:(NSString *)_name
{
//先实例化一个对象
Student *student =[[Student alloc] initWithName:_name];
return [student autorelease];
}
//通过便利构造器创建实例对象
Student *autoStudent = [Student studenrWithName:@"XiaoA"];
[autoStudent sayHi];
- 便利构造器是一种快速创建对象的方式。本质上是把初始化方法做一次封装,方便外接使用。
- 便利构造器是一个类方法。
- 通常以类名开头