面向对象的三个基本特征
封装封装是对象和类概念的主要特征,就是把客观的封装起来,只对外暴露出来,并把自己的数据和 *** 只让可信的类或对象操作作用:隐藏实现细节,使得代码模块化
继承使用现有类的所有功能,并且无需重新编写原来的类中的 *** 对这些功能的扩展,oc只能实现单继承,如果想要实现多继承的话可以通过分类或者扩展实现(通过多级继承来实现)实现方式:
实现继承 接口继承可视继承作用:可以扩展已存在的代码模块封装和继承的作用都是为了代码重用多继承的实现:
协议 一个类实现多个协议用来达到实现多继承的 *** 分类 可以添加 *** 添加实例 分类方便管理消息转发机制 runtime实现过程:
动态 *** 解析 reslveInstanceMethod 检查是否通过@dynamic 动态添加了 *** 直接消息转发 检查是否实现forwardingTargetForSelector:是否实现,如果返回非nil或者非self 则直接调用标准 *** 转发 先处理 *** 调用再转发消息,重写methodSingnatureForSelector:和forwardInvocation *** ,前者为该消息创建一个合适的 *** 签名,后者则是将该 *** 转发给其他对象程序报错多肽允许将子类类型的指针赋值给父类类型的指针,通俗的讲就是子类可以通过不同的 *** 去实现父类中同一个 *** 实现方式:
覆盖 子类重新定义父类的 *** 重载 子类可以通过不同的 *** 调用父类的同一个 ***作用:实现接口的重用