Objective-C 继承

来源:互联网 发布:cpu散片能在淘宝上买吗 编辑:程序博客网 时间:2024/05/29 19:33
先 架构框架 即: 先把所有的用到的类先建好
类的继承  
1, 在类的关系(子类  父类)确定之后  继承关系就确定
2, 继承是单向的  不能相互继承
3, 一个子类只能有一个父类
4, 继承具有传递性 A继承B   B继承C  则A继承C
5,子类可以访问父类中除了@provite之外的文件
[self 方法] 调用自己的方法
[super 方法]调用父类方法的实现
继承.

继承的思想:当多个类出现部分相同的实例变量和方法时,就考虑用继承
继承的使用:将多个类中相同的实例变量的方法提出来写成一个公共的父类.


继承方法
1.保留父类 对该方法的实现,(不用重写)
2.按子类重写之后的方式来实现,(重写,忽视父类的实现)
3.既有父类对该方法的实现,又有子类对该方法的实现.



继承的上层: 父类 ,继承的下层:子类
继承是单向的,不能相互继承。
继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为
子类能继承父类全部的特征和行为.
面向对象提供了的继承语法,能够大大简化代码,把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可
继承既能保证类的完整,又能简化代码,让类与类之间的关系更加紧密。




继承特点
OC中只允许单继承
没有⽗父类的类称为根类,OC中的根类是NSObject(祖宗)。
继承的内容:所有实例变量和方法。
如果子类不满意父类方法的实现,可以重写父类的方法。
- (void)eat{    NSLog(@"%@在吃草",_name); }
eat方法是由子类继承自父类Person中的,如果自雷需要修改父类中的实现,则只需在类的实现部分重新定义该方法即可。




super 是编译器指令,并非对象。


作用:给super发消息,可以执行父类中实现的方法。
当子类重写父类方法时,通过super执行父类的实现,又拥有自己的实现,相当于对父类已经定义的方法做扩展。
子类可以重写父类的方法,即子类既有自己的实现,又有父类继承下来的实现,如果想使用父类的实现,向super发送消息。




  初始化方法


创建对象分两步:开辟空间,初始化。
初始化方法的主要作用是:为某些实例变量赋初值。
初始化方法在对象的整个生命周期里只使用一次。




    学习继承之前,初始化方法,没有self=[super init] 字样。我们为 实例变量逐一赋值。
   学习继承之后,父类生命了公共的实例变量。作为父类,也应该有自己的初始化方法,为这些公共实例变量赋初值。
  子类定义了除父类中公共实例变量之外的实例变量。在自身的初始化方法中,优先向super发送init消息,初始化公共变量,初始化成功之后,再初始化自身特有变量,从而完成全部实例变量的初始化。


 初始化方法的特征


初始化方法是”-“方法
id或者instancetype类型的返回值
以init开头
可以带0到多个参数
内部实现:先执行super的初始化方法,在初始化自身变量,return self。




便利构造器
便利构造器.作用快速创建对象,内部封装了创建对象的过程,
格式:1 +号方法 2 返回值类型id 3.以类名+with开头,拼接上多个参数

便利构造器在初始化的方法芙蓉基础上前进了一小步,封装了对象创建过程。
可以有0到多个参数。
内部实现:封装了alloc和初始化方法。使用起来更加简洁。 
0 0
原创粉丝点击