public class JavaClass {
public void echo() {
System.out.println("Echo'd from Java Class");
}
private void doSomethingElse() {
System.out.println("Something else happening from Java Class");
}
}
Usually in Groovy, (Java) private methods cannot be overridden. However, it seems like the public method can be overridden like below:
JavaClass pojo = new JavaClass()
pojo.metaClass.echo = {
println "Echo overridden!"
}
pojo.metaClass.doSomethingElse = {
println "This won't be overridden"
}
println pojo.echo
println pojo.doSomethingElse
This outputs:
Echo overridden!
Something else happening from Java Class
If it's impossible to override private methods, why are public ones allowed?