3
子類調用父保護方法,期望返回受保護的覆蓋屬性。 但返回父級的屬性。groovy受保護的屬性不能在子類中覆蓋
//父類:
package tz
import java.util.List;
class AbstractController {
protected List keywordFilter = []
protected String methodKey(){
return "\t[method]parent,$keywordFilter,"+keywordFilter.toString()
}
def closureKey(){
return "\t[closure]parent,$keywordFilter,"+keywordFilter.toString()
}
}
//子類:
package tz
import java.util.List;
class SubController extends AbstractController{
protected List keywordFilter = ['a']
public SubController(){
}
public void test(){
println "subCall:"+methodKey()+closureKey()
}
def test2 = {
println "c,$keywordFilter,"+methodKey()+closureKey()
}
public static void main(String[] args) {
def s = new SubController()
s.test()
s.test2()
}
}
//輸出:
subCall:[method]parent,[],[] [closure]parent,[],[]
c,[a], [method]parent,[],[] [closure]parent,[],[]