iOS 分类、扩展和继承的区别

2025-12-18 01:15:15
推荐回答(1个)
回答1:

category VS class extension
category: 在运行期决议 -> 意味着category 一般情况下是不被 允许添加属性的(但其实可通过runtime添加属性) -> 因为 在运行期的时候 已经过了编译期间 内存已经布局好了(每个类对象 等占用的空间地址都已经固定)
class extension: 在编译期决议 -> 可以添加属性,方法等 -> 起到了私有的作用(不被外部所看到调用, 起到了一定的保护作用)
category VS category
引言: 对 一个 类扩展的方式是有两种, 分别是 分类 和继承
使用继承: 1.扩展时需要 继承属性 2. 扩展时需要 继承方法 (同名的时候可以覆写)
使用分类: 1.对于系统的类(看不到源代码的这种进行分类)->模拟多继承 2.添加私有方法