编写高质量代码-OC 第6章 继承与面向对象设计
41、明确isa在继承上的作用
- 1、在Objective-C中,每个对象都隐藏着一个数据结构isa指针
- 2、isa指针指向的是对象的类,这个类也是一个对象,有自己的权。
- 3、在Objective—C中,每个对象还都保留一个超类的指针,通过该指针可调度自己已有的方法和调度基类。
42、利用类别和协议实现类似多重继承的机制
- 1、类别,实现了类的相关方法的模块化,把不同的类方法分配到不同的分列文件中。
- 2、类别可以重载原始类的方法,但不推荐这么做,这么做得后果是再也不呢过访问原来的方法,如果确实要重载,正确的选择是创建子类。
- 3、和普通接口有所区别的是,类别的实现文件中可以不必实现所有声明的方法,只要不去调用它。
- 4、协议就是一系列不属于任何累的方法列表,其中声明的方法可以被任何类实现。协议(Protocol)并不是真正的类,它只能声明方法,不能添加数据。
43、类别和类扩展是类继承的延续性扩展。
44、继承基类的实现行为勿忘调用super。
- 1、调用基类方式,以使用该类提供的服务。
- 2、覆盖基类的方法,以便将自己的代码引入到定义的程序模型中。
- 3、如果打算补充基类实现的行为,请调用super。
- 4、如果打算替换基类实现的行为,就不要调用super。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了