由於Java一種單繼承的語言即子類只能繼承一個父類所以無法重用兩個類的實現Groovy在這方面做了些改進引入了Mixin
現在讓我們看一下Groovy中的Mixin的威力吧
// 創建一個Category以重用該類中的靜態方法的實現
class FileCategory {
// 實現操作符(<<)重載( << 對應的方法為leftShift )
static leftShift(self other) {
// 將Hello 以及other中的內容寫入self表示的文件中
selfwrite( Hello $other )
println done!
}
}
// 利用關鍵字use使用之前創建的Category
use (FileCategory) {
// 創建File的一個實例 並將Hello 山風小子寫入該文件中注意不帶雙引號
new File( hellotxt ) << 山風小子
}
File類 已經繼承了Object類 但它通過Groovy中Mixin重用了FileCategory類中leftShfit方法的實現
其相關細節說明已經注於代碼中希望大家喜歡 :)
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27076.html