例如,我知道 Objective-C 类方法可以被覆盖,而 Java 则不能。
这样做有什么好处,还有哪些其他区别?
最佳答案
简而言之,Java 中的静态方法只是附加到类的函数。它们不像实例方法那样工作,因为您不能使用 this 或 super。他们实际上对自己在类里面没有真正的概念。
但 Objective-C 类方法非常不同。除了类之外,它们与实例方法完全相同。鉴于类是 Obj-C 中的对象,这并不奇怪。因此,它们通过所有相同的动态调度,您可以使用 self 访问其他类方法,您可以使用 super 调用父类(super class)的类方法。这提供了更大的灵 active ,因为您可以使用类方法执行与使用实例方法相同的所有操作,例如 nil 消息传递、方法调配等。
关于java - 与 Java 相比,Objective-C 中类级别方法的区别和好处是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6235818/