Mixin-混入
Groovy也遵守Java的单继承特性,一个类只允许直接继承一个类。Groovy这这方面解决了Java的的不足,允许利用mixin将多个类的实现拉进来,从某一种意义来说,变相实现了多继承。”Minin”是Mix和in的组合,即混入进来的意思;
Mixin是一种运行时能力,可以将多个类的实现引入进来,让引入类也可以调用混入的这些类中的方法;混入后,当对象调用一个方法时,首先会去混入的类中查看是否有符合的方法,有则调用,没有则去引入类中查看;当混入多个类时,最后混入的类的方法优先级最高;混入后,引入类也就具有混入类的行为,即可以调用混入类的方法
向类中混入
混入方式写法一:注解混入
利用@Mixin注解语法,将类注入到引用类中如:@Mixin(混入类名);如果想某个类中混入多个类,通过向注解提供有多个类名组成的列表如:@Mixin([类名1,类名2,….])
class Friend {
def listen(){
"$name is listenning as a friend"
}
}
class Person {
int id
String name
def void test(){
println "============test()==