是否可以在同一个包中使用2个具有相同名称的类?

时间:2014-08-11 20:34:28

标签: java grails groovy override method-overriding

我正在开发一个grails应用程序,我需要修改一个插件中的groovy类,所以我决定覆盖该类,所以我在我的插件中有这些方法和类:

def example = new a();
a.method();

class a {
   void method() {
      println "2";
   }
}

这一切都在插件内部,所以我想在我的项目中的同一个包中创建另一个类来改变方法,但是如何设置我的新类来运行而不是插件呢?还是不可能?

class a {
   void method() {
      println "4";
   }
}

2 个答案:

答案 0 :(得分:1)

是的,你可以。它被称为类阴影。但我会在大多数时候反对它。你只需要让jvm在插件类之前加载你的类。

答案 1 :(得分:1)

是的,您只需要确保您的课程在插件版本之前的类路径中。