Wil*_*sch 12 iphone inheritance objective-c categories ios
如果在该类的类和类别中定义了一个方法,则未定义将调用哪个实现.
但这如何与继承相互作用?特别:
bbu*_*bum 40
如果在该类的类和类别中定义了一个方法,则未定义将调用哪个实现.
那是不对的; 类别方法总是会赢.但是,如果你有多个类别实现相同的方法,那么什么是行不通的,那么"哪一个获胜"是未定义的.
它通常是"最后装载的胜利",但这也不是一个严格的规则.
请注意,由于许多类在内部将其实现划分为不同的类别以用于代码组织目的,因此无论如何都不能依赖第一个规则.
简而言之,约书亚所说的; 不要使用类别覆盖方法.
除了继承的原因,当你这样做时,你也会恶意破坏封装.基于类的实现不是覆盖现有方法,而是完全取代它.因此,如果您不重现每个最后的内部实现细节,包括错误,您的替换将无法正常工作并且调试它将很难.
| 归档时间: |
|
| 查看次数: |
4414 次 |
| 最近记录: |