基本用法
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!!"