【发布时间】:2012-03-24 00:08:09
【问题描述】:
我有一个时髦的超类,看起来像:
class AGroovyClass {
private String str = "hello"
void printString(int nTimes) {
nTimes.times { println str }
}
}
和子类
class AGroovySubclass extends AGroovyClass {
// some other subclass methods
}
我的客户代码调用:
new AGroovySubclass().printString(5)
这实际上中断了,因为它说 AGroovySubclass 没有这样的属性“str”
我会认为既然 printString 方法在 AGroovyClass 中,访问“str”属性应该没有问题,但显然我错了。如果我想保持“str”私有,那么使这项工作的适当方法是什么?
【问题讨论】: