//操作符重载 class Rmb { def number //重写+ def plus(o) { if (o instanceof Number) { new Rmb(number: number + o) } else if (o instanceof Rmb) { new Rmb(number: number + o.number) } else { throw new MissingMethodException('plus', Rmb.class, o) } } //重写switch中的case def isCase(o) { if(o instanceof Rmb){ o.number = 200 return true }else { false } } } //重写 + def aa = new Rmb(number: 10) + 20 def aaa = new Rmb(number: 10) + new Rmb(number: 30) println aa.number println aaa.number //重写isCase switch (aa) { case new Rmb(number: 10): println("是新的${aa.number}") break case 100: println aa.number break }
重载运算符汇总: