设为首页 加入收藏

TOP

Groovy 2.3 trait语法介绍
2014-11-23 23:41:52 来源: 作者: 【 】 浏览:11
Tags:Groovy 2.3 trait 语法 介绍

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


相关阅读:


在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的实现的实例,所以,你可以这样写:


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


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


Duck is flying..


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用Python语言高效地处理一个文.. 下一篇单链表的建立

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: