基本用法
trait
是一组可重用的方法和字段,可以添加到一个或多个类中。
trait BarkingAbility {
String bark(){ "I'm barking!!" }
}
它们可以像普通接口一样使用 implements
关键字:
class Dog implements BarkingAbility {}
def d = new Dog()
assert d.bark() = "I'm barking!!"
它们也可用于实现多重继承(避免钻石问题)。
狗会划伤他的头,所以:
trait ScratchingAbility {
String scratch() { "I'm scratching my head!!" }
}
class Dog implements BarkingAbility, ScratchingAbility {}
def d = new Dog()
assert d.bark() = "I'm barking!!"
assert d.scratch() = "I'm scratching my head!!"