Trait
在scala中,trait相當於java中的interface關鍵字,可以用來定義介面,但是trait除了定義介面,還有許多強大功能
結果:Log: It's me !!!
結果: TraitLogger Log content is : It's me !!!
所以,一般在trait中做很多不同的工具方法,然後根據執行情況混入不同的trait到物件中。
點選(此處)摺疊或開啟
-
trait Logger{
-
// def log (msg : String)
-
def log (msg : String){} //與java不同的是,trait允許方法有實現
-
}
-
-
class ConcreteLogger extends Logger with Cloneable{ //with關鍵字可以用來使用其它trait
-
override def log(msg : String) = println("Log: " + msg) //子類覆蓋trait方法
-
def concreteLog{
-
log("It's me !!!")
-
}
-
}
-
- object UseTrait extends App{
-
val logger = new ConcreteLogger
logger.concreteLog
-
}
點選(此處)摺疊或開啟
-
trait Logger{
-
def log (msg : String){}
-
}
-
class ConcreteLogger extends Logger with Cloneable{ //with關鍵字可以用來使用其它trait
-
//這裡沒有覆蓋trait的log方法
-
def concreteLog{
-
log("It's me !!!")
-
}
-
}
-
-
trait TraitLogger extends Logger{ //定義另一個子trait,覆蓋父trait的方法
-
override def log (msg : String){
-
println(" TraitLogger Log content is : " + msg)
-
}
-
}
-
-
object UseTrait extends App{
-
val logger = new ConcreteLogger whit TraitLogger //將具體實現的trait動態混入到物件中
-
logger.concreteLog
- }
所以,一般在trait中做很多不同的工具方法,然後根據執行情況混入不同的trait到物件中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1839844/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP TraitPHPAI
- Trait 的使用AI
- PHP之TraitPHPAI
- Hyperf 驗證 traitAI
- PHP 核心特性 - TraitPHPAI
- 淺談 Trait 類AI
- PHP中Trait特性PHPAI
- scala中的TraitAI
- PHP 特性之 trait (一)PHPAI
- ctags 處理 PHP traitPHPAI
- trait in rust, and comparison with interface in javaAIRustJava
- Rust 內建 trait :PartialEq 和 EqRustAI
- PHP中Trait的使用總結PHPAI
- Trait 'Illuminate\Auth\UserTrait' not foundAI
- 一起學Scala Trait(特徵)AI特徵
- PHP中的trait方法衝突PHPAI
- yii2行為和TraitAI
- Rust 中的 Trait 是什麼RustAI
- 轉載:我所理解的 PHP TraitPHPAI
- 分享個自己封裝的限流trait封裝AI
- 基於 Scala Trait 的設計模式AI設計模式
- PHP 中 Trait 詳解及其應用PHPAI
- Javascript中的Trait與程式碼重用JavaScriptAI
- trait 和型別的方法同名的例子AI型別
- 如何在 Laravel 中靈活的使用 TraitLaravelAI
- rust-quiz:005-trait-resolution-hrtb.rsRustUIAI
- 利用 trait 簡易 Facade 實現AI
- 記錄laravel orm trait載入小技巧LaravelORMAI
- 在 Kotlin 中“實現”trait/型別類KotlinAI型別
- 用trait實現簡單的依賴注入AI依賴注入
- 009 Rust死靈書之高階trait邊界RustAI
- rust-quiz:014-trait-autoref.rsRustUIAI
- 分享一個 Trait 來易用 Laravel 的快取AILaravel快取
- Rust 程式設計影片教程(進階)——002 traitRust程式設計AI
- PHP trait 特性在 Laravel 中的使用個人心得PHPAILaravel
- 實踐解析丨Rust 內建 trait:PartialEq 和 EqRustAI
- Rust 程式設計視訊教程(進階)——002 traitRust程式設計AI
- 013 Rust 非同步程式設計,Send trait 相關Rust非同步程式設計AI