oc中的oop

继承工作机制

1.调用方法:先找到相应消息的对象 -> 在去找到对象是那个类的实例化 ->  找这个类的方法列表 是否有方法可以相应这个消息   ----有---> 执行代码

                                                                                                                                                                                                                               ----没有---> 去父类查找

2.调用实例变量:方法中使用的实例变量  其实和方法定义在那个类中无关  而是与那个对象调用了这个方法有关  因为实例变量的值是存放在 对象中   对象调用方法 会将自身传入方法中(self) 在方法中使用实例变量  其实就是self->实例变量     他的值之和对象有关


重写方法:会导致子类的方法覆盖父类的方法  并不是父类的方发真正不存在了 只是当在子类的方法列表中查找是已经可以找到这个方法   就不会到父类查找  这样父类的方法其实就调用不到了  


super:可以绕过子类 直接到父类查找  super不是对象也不是类 是"编译器指示符"


组合:一个对象拥有其它对象(拥有基本类型不算  基本类型算是对象的一部分)


小细节:

1.编译器指令后不能有分号(;)

2.oc中并不存在真正的私有方法  因为这是oc的动态机制的副作用

3.类的实现和申明的参数名可以不一致

4.既可以向对象发送消息  又可以向发送消息

5.getxxxx在cocoa中有是将你传递的参数 以指针的方式返回  (所以尽量不使用getxxxxx)

6.父类不能用前置声明  因为子类在分配空间时必须要知道父类的实例变量占用的空间 和 父类的具体信息


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值