类别非常强大,可以添加方法,以及 associations可以添加额外的属性和变量,很难看出 Objective C 中子类的重要性。
开源内置了这么多开源类别,我真的看不出子类有什么意义。关联还可以提供调用链(在关联属性实现内部),因此不需要继承。
当我想创建扩展 UILabel 的 MyLabel 或扩展 NSString 的 MyString 时,任何人都可以提供确切的用例吗?
最佳答案
- 子类可以安全重写父类(super class)中的方法;类别不能。
- 子类仅为新类的实例自定义行为,而不是为父类(super class)的所有实例自定义行为。
- 子类以类别集合无法声明的方式声明意图。
关于ios - 如果类别如此强大,那么什么时候是子类化 iOS 类的合适时机呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34478930/