java - 与 Java 相比,Objective-C 中类级别方法的区别和好处是什么

标签 java objective-c class-method

例如,我知道 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/

相关文章:

iphone - 如何在Cocoa Objective-C中创建类别类

ios - 如何在 Objective C 中调整 UITableView 行高

ruby - 有没有办法从 Ruby 中的实例调用私有(private)类方法?

java - 3D 空间中的轴对齐边界框和三角形碰撞

java - 使用 php 和 Java session

java - Java 有没有支持一年中的季度和星期的 DateTime 库?

java - 如何在 Spring Boot 或 Java 中将 json 响应列表合并到另一个列表中?

objective-c - Objective C 动态对象创建

python - 如何在Python中检测staticmethod/classmethod的被调用者类?

objective-c - Objective-C 类方法的对象保留行为