一. 封装:将实现细节进行隐藏,将属性私有化,通过公共的方法访问私有的属性,这个过程就是对对象的封装
好处:1.给数据进行了过滤,保证数据的正确性
2.增加了代码的重用性
3.将属性进行了私有化,可以保证属性的安全性
重写:当子类当中有与父类同名(同名,同参,同返回值,同类型)的方法的时候,叫重写
//当重写发生的时候,子类会直接调用本类当中的同名方法,父类当中的方法相当于被覆盖了,不会再发生调用。
//重写作用:就是子类的同名方法当中想要实现一些属于本类的功能。
注意:方法可以重写,但成员变量不可以重写命名,会造成重复命名。
二. 继承的定义:有两个类A类与B类,如果说A类继承了B类,就说A类拥有了B类的所有属性和方法。
*继承者叫子类 被继承者叫父类(超类)
*继承是单继承,只有一个直接的父类,一个父类可以有多个子类
*优点:节省代码,提高效率,跳高代码的重用性,安全性,方法修改代码。
*由于对象之间有了继承关系,才会有多态。
*缺点:耦合性强(依赖性高)
*场景:可以用“谁是谁”来表述,就可以使用继承。前面的继承后面的类
比较:组合模式的使用:用“谁拥有谁”来表述,就使用组合,后面的属于前面的
*NSObject是所有类的父类(基类),他没有父类。
*寻找方法路径:先在本类的方法列表中找要调用的方法,找到了,就直接使用,找不到就到父类中找,找到方法后,调用,找不到,继续向上找。一直找到NSObject,还没有找到,说明,没有这个方法
三.多态:
定义:一种事物的多种形态
前提:类与类之间要先有继承
程序中的表述:父类的指针指向子类的对象,就叫多态
动态绑定:在运行的阶段才会真正的识别对象的真正类型
作用:增加方法的扩展性
注意:当让指向子类对象的父类指针,调用子类对象的私有方法的时候,要进行强制转化。
四.补充:
1》self
self:在那个方法里面,self就代表什么
*在对象方法里面,self代表对象
*在类方法里面,self代表类
注意:*self只能在方法里面使用
*使用self调用方法的时候,要防止自己调用自己,造成死循环
self可以调用其他的方法
使用:可以通过self调用成员变量,在调用成员变量的时候,一定是在对象方法内部,self代表的是对象
self可以通过->调用成员变量,在调用成员变量的时候,self一定代表对象,而且一定在对象方法里