Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重写objective-c类中的方法,如在Java中_Java_Objective C - Fatal编程技术网

重写objective-c类中的方法,如在Java中

重写objective-c类中的方法,如在Java中,java,objective-c,Java,Objective C,我经常使用这个语句来扩展类,而不需要编写一个完整的单独文件。假设ClassFromFramework是库中包含的框架的一部分 public ClassFromFramework { public String myMethod() { // operations } //lot of other methods.... } 然后,在我的课堂上,我可以做到以下几点: import com.framework.ClassFromFramework; publi

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

public ClassFromFramework {

   public String myMethod() {
      // operations
   }

   //lot of other methods....

}
然后,在我的课堂上,我可以做到以下几点:

import com.framework.ClassFromFramework;

public MyClass {

   public void method() {

      ClassFromFramework m = new ClassFromFramework() {
        @Override
        public String myMethod() {
          // do operations...
        }
      } 

      m.myMethod();
   }
}

我想知道我是否可以在使用Objective-c时实现同样的效果,而不必声明一个新的组合.h.m文件并在我的using类中导入。

您可以创建一个新的子类并重写方法,但所有新类都必须在它们自己的.h和.m文件中。Obj-C就是这样运作的。在这种情况下,有额外的文件是有意义的


您还可以使用super这个词调用父方法。在对ViewController进行子类化时,例如在viewDidLoad中,始终会执行此操作。

您是对的。考虑到上面的示例,我发现的唯一“解决方法”是直接在MyClass.m实现中声明扩展了ClassFromFramework的.h和.m。我希望我说清楚:-