Groovy subclase llamado método de superclase que accede al cierre
Tengo una superclase maravillosa que se parece a:
class AGroovyClass {
private String str = "hello"
void printString(int nTimes) {
nTimes.times { println str }
}
}
y subclase
class AGroovySubclass extends AGroovyClass {
// some other subclass methods
}
Mi código de cliente llama:
new AGroovySubclass().printString(5)
Y esto realmente se rompe porque dice que no existe tal propiedad "str" para AGroovySubclass
Pensé que, dado que el método printString está en AGroovyClass, no debería tener problemas para acceder a la propiedad "str", pero claramente soy incorrecto. Si quisiera mantener "str" en privado, ¿cuál es la forma adecuada de hacer que esto funcione?