加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Groovy 2.3 trait语法详解

发布时间:2021-11-20 16:02:06 所属栏目:教程 来源:互联网
导读:基本用法 在Groovy 2.3中,这样定义一个基本的trait: trait SwimmingAbility { def swim() { println swimming.. } } trait的定义与类的定义非常相似。SwimmingAbility trait只定义了一个swim()方法。接下来就可以使用implements关键字来向类中加入这个trai

基本用法
在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..

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读