1.继承
(1)继承的上层是 (冒号后边的)父类,继承的下是 (冒号前边的)子类。
(2)继承是单向的,不能相互继承。
(3)继承具有传递性:A 继承于 B ,B 继承于 C,A 具有 B 和 C 的特征和行为。
子类能继承父类的所有特征和行为。
(4)面向对象提供了继承语法:能够大大简化代码。把公共的方法和实例变量卸载父类里,子类只需写自己独有的实例变量和方法。
(5)继承既能保证类的完整,又能简化代码。
继承的特点:
(1)OC中只允许单继承;没有父类的类称为根类;OC中的根类是NSobject(祖宗)。
(2)继承的内容:所有实例变量和方法
(1)继承的上层是 (冒号后边的)父类,继承的下是 (冒号前边的)子类。
(2)继承是单向的,不能相互继承。
(3)继承具有传递性:A 继承于 B ,B 继承于 C,A 具有 B 和 C 的特征和行为。
子类能继承父类的所有特征和行为。
(4)面向对象提供了继承语法:能够大大简化代码。把公共的方法和实例变量卸载父类里,子类只需写自己独有的实例变量和方法。
(5)继承既能保证类的完整,又能简化代码。
继承的特点:
(1)OC中只允许单继承;没有父类的类称为根类;OC中的根类是NSobject(祖宗)。
(2)继承的内容:所有实例变量和方法
(3)如果子类不满意父类的方法实现,可以重写(overwrite)父类的方法。
2.完整的初始化方法
- (id)init{
//给super发送init消息,即执行父类中的init方法
self = [super init];
if(self){
//子类自己的初始化设置;
}
//初始化完成,返回对象自己本身
return self;
}
3.用便利构造器创建对象
(1)在.h中声明
+ (id)personWithName:(NSString *)name;
(2)在.m中实现
+ (id)personWithName:(NSString *)name{
Person *p = [[Person alloc] initWithName:name];
return p;
}
(3)在.main中进行创建对象
Person *baizihua = [Person personWithName:@"白子画"];
NSLog(@"%@",[baizihua name]);