在ExpandoMetaClass的帮助下在groovy中添加或覆盖任何方法都很有效,直到我试图覆盖的方法不会覆盖接口方法。以下代码的输出为mew, I am hungry
,但我希望它为mew-mew
。我做错了什么?
interface Cat {
String mew()
}
class Barsik implements Cat {
String mew(){ "mew, I am hungry" }
}
Barsik.metaClass.mew = {->
"mew-mew"
}
Cat barsik = new Barsik()
println(barsik.mew())