在父类声明的属性,自动生成的成员变量、set/get方法都可以被子类继承,但自动生成的成员变量为私有类型@private,不可以直接给子类访问。但可以通过继承过来的set/get方法访问子类继承过来的成员变量;类扩展中声明的属性及方法不可以给子类继承,只能给父类自己调用;当创建一个子类并声明子类自己的成员属性,创建实例对象并初始化时,无法为继承过来的成员变量赋值,需要调用父类的指定初始化方法进行初始化。
- 创建一个子类KNZSon,并在KNZSon.h头文件声明一个成员属性nickName及指定初始化方法:
- 实现指定初始化方法
- -(instancetype)initWithName:(NSString *)name age:(int)age sex:(BOOL)sex nickName:(NSString *)nickName
- 先调用父类指定初始化方法:- [super initWithName:name age:age sex:sex],并让self接收。
- 判断self是否为空,如果不为空则在if代码中为子类成员变量初始化"_nickName = nickName;"
- 返回self