第三讲.继承,完整初始化方法,遍历构造器,多态
一.继承(面试题)
1.继承(面试题)
1> 继承是单向的,
继承具有传递性,子类继承父类的的特征和行为。简单来说就是子类可以直接使用父类定义过的对象及方法.(在使用时根据情况需要在子类中重新初始化)
子类扩展了父类,使特征和行为更加的具体。
2>继承的特点:
OC中只允许单继承。(一个子类只有一个父类)
没有父类的类成为根类,OC中的根类是NSObject(祖宗类)。
继承自父类的内容:除了私有变量外的所有实例变量和方法。
子类可以重写父类的方法。
3> super关键字:
描述:只是OC中的关键字,不是父类对象,只是用来调用父类中的方法。
作用:给super发消息,可以执行父类中实现的方法。
二.完整初始化方法.
初始化的过程:在继承中子类定义了除父类中公共实例变量之外的实例变量.在自身初始化过程中,先向super发送init消息,初始化共有变量,初始化成功后,初始化自身特有变量,从而完成初始化过程.在整个生命周期只能初始化一次.
实例:person.h
person.m文件
main.m文件
三.便利构造器
1.便利构造器在初始化⽅方法的基础上封装了对象创建过程。
2.便利构造器是“+”方法,返回本类型的实例,方法名以类名开头。
可以有0到多个参数。 内部实现:封装了alloc和初始化方法。使用起来更加简洁。
3.特点及命名规则
特点:遍历构造器是类方法
命名规则:还用驼峰命名法,方法名以类名开头
4.遍历构造器: 是一种快速创建对象的方式.它本质上是把初始化方法做了一次封装,方便外接使用.同时在使用遍历构造器时,必须与初始化方法结合使用(initWith)
实例变量:Person.h
Person.m文件
main.m文件
四.多态
-
a. 初始化方法返回的是id类型,id是一个可以指向任何对象的指针。因此animal可以指向Cat和Dog类型的对象。
b. Cat类型对象和Dog类型对象在响应同一个方法eat中,做出了不同的反响,这正是多态的表现。
- 多态的特点:
a. 父类指针可以指向不同的子类对象
b. 允许在多个类中定义同一个消息接口
c. 可以屏蔽不同的子类之间的差异,可以通用代码
d. 适应需求的不同变化
多态实例: