手机版
你好,游客 登录 注册
背景:
阅读新闻

Groovy 2.3 trait语法介绍

[日期:2014-05-01] 来源:oschina.net  作者: 翟志军 [字体: ]

前几天,Groovy 2.3的第二个beta版本发布。Groovy 2.3最重要的新特性之一是trait语法。trait是一组可重用的方法和字段,可以将它们混入到一个或多个类中。一个类可以同时拥有多个trait而不需要使用多重继承(从而避免钻石问题)。

Groovy 的详细介绍请点这里
Groovy 的下载地址请点这里

相关阅读:

Gradle 打包 Groovy 脚本成 jar与上传到maven repository http://www.linuxidc.com/Linux/2012-07/64178.htm

Groovy入门教程 http://www.linuxidc.com/Linux/2013-09/89776.htm

基本用法

在Groovy 2.3中,这样定义一个基本的trait:

trait SwimmingAbility {
      def swim() {
        println "swimming.."
      }
    }

trait的定义与类的定义非常相似。SwimmingAbility trait只定义了一个swim()方法。接下来就可以使用implements关键字来向类中加入这个trait:

class Goldfish implements SwimmingAbility {
      ..
    }

现在,我们就可以调用Goldfish对象的swim()方法了。

def goldfish = new Goldfish()
    goldfish.swim()

到这里,我们已经实现了与继承同样的功能。不同的是,我们可以添加多个trait到同一个类中。下面,我们定义其它的trait:

trait FlyingAbility {
      def fly() {
        println "flying.."
      }
    }

再创建一个新的类,同时使用这些trait:

class Duck implements SwimmingAbility, FlyingAbility {
      ..
    }

现在鸭子可以游动和飞了:

def duck = new Duck()
    duck.swim()
    duck.fly()

trait中的this关键字

trait中的this关键字代表了trait的实现的实例,所以,你可以这样写:

trait FlyingAbility {
      def fly() {
        println "${this.class.name} is flying.."
      }
    }

如果调用duck.fly(),将会打印:

Duck is flying..

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2014-05/101035p2.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款