类的设计与实现
构造方法
1.init 与 super
init:构造方法 作用是在创建一个对象后,对对象进行初始化操作
以init开头的所有方法(系统提供的,自定义的)都称为构造方法
super 相当于子类中对父类的一个索引,通过索引,可以将子类中包含父类的部分,让父类去进行初始化
instancetype 相当于id 都是泛型 可以指向任意类的对象 编译时 编译器不对指向的对象做任何检查 只有代码运行的时候 才会直接给对象发送消息
【注】泛型指针存在一定风险 如果指向的对象不存在该消息 程序直接崩溃
//自定义构造方法的好处
1>可以在对象初始化的时候直接对属性赋值 代码代码更加简洁
2>从代码封装的角度来看,代码的封装性更强,更符合编程思维 对对象的操作可以直接在类的内部进行 而不需要在类之外的其他地方进行
重写构造方法
- (Road *)initWithLength:(int)length{
self = [super init];
//self 代表当前调用该方法的对象 super 相当于一个索引
保证子类中包含父类的部分可以通过父类也进行初始化,最终达到所有的部分完全进行了初始化
if (self) {
_length = length;
}
return self;
}