像Java一样覆盖Objective-c类中的方法

我经常使用此语句来扩展类,而无需编写完整的单独文件。 假设ClassFromFramework是一个类,它是库中包含的框架的一部分。

public ClassFromFramework { public String myMethod() { // operations } //lot of other methods.... } 

然后在我的class上我可以做以下事情:

 import com.framework.ClassFromFramework; public MyClass { public void method() { ClassFromFramework m = new ClassFromFramework() { @Override public String myMethod() { // do operations... } } m.myMethod(); } } 

我想知道我是否可以使用Objective-c实现相同的function,而无需声明新的组合.h .m文件并在我的使用类中导入。

您可以创建一个新的子类,并覆盖方法,但所有新类必须位于自己的.h和.m文件中。 这就是Obj-C的运作方式。 在这种情况下,拥有其他文件是有意义的。

您也可以使用单词super调用父方法。 这在子类化ViewController时始终完成,例如在viewDidLoad中。