【IT168 技术文档】由于Java一种单继承的语言,即子类只能继承一个父类,所以无法重用两个类的实现,Groovy在这方面做了些改进,引入了Mixin
现在让我们看一下Groovy中的Mixin的威力吧:
// 创建一个Category,以重用该类中的静态方法的实现 class FileCategory { // 实现操作符(<<)重载( << 对应的方法为leftShift ) static leftShift(self, other) { // 将"Hello, "以及other中的内容写入self表示的文件中 self.write( " Hello, $other " ) println " done! " } } // 利用关键字use,使用之前创建的Category use (FileCategory) { // 创建File的一个实例, 并将"Hello, 山风小子"写入该文件中,注意不带双引号 new File( " hello.txt " ) << " 山风小子 " }
File类 已经继承了Object类 ,但它通过Groovy中Mixin,重用了FileCategory类中leftShfit方法的实现,
其相关细节说明已经注于代码中,希望大家喜欢 :)
未来Groovy的Mixin实现:http://docs.codehaus.org/display/GroovyJSR/Mixins