Scala多繼承以及AOP
點選(此處)摺疊或開啟
-
class Human{
-
println("Human")
- }
-
-
trait TTeacher extends Human {
-
println("TTeacher")
-
def teach
- }
-
-
trait PianoPlayer extends Human {
-
println("PianoPlayer")
-
def playPiano = {println("I am playing piano. ")}
- }
-
-
class PianoTeacher extends Human with TTeacher with PianoPlayer { //構造PianoTeacher例項時,按照從左至右的順序依次完成,僅構造一次
-
override def teach = {println("I am training students. ")}
-
}
-
-
object UseTrait extends App{
-
val t1 = new PianoTeacher
-
t1.playPiano
-
t1.teach
- }
Human
TTeacher
PianoPlayer
I am playing piano.
I am training students.
點選(此處)摺疊或開啟
-
//AOP
-
trait Action {
-
def doAction
- }
-
-
trait TBeforeAfter extends Action {
-
abstract override def doAction {
-
println("Initialization")
-
super.doAction //因為呼叫了父類的抽象方法,所以本方法也是抽象的。super.doAction最終會在子類Work中實現,有點類似於模板方法設計模式。
-
println("Destroyed")
-
}
-
}
-
-
class Work extends Action{
-
override def doAction = println("Working...")
-
}
-
-
object UseTrait extends App{
-
val work = new Work with TBeforeAfter
-
work.doAction
- }
Initialization
Working...
Destroyed
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1845125/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Scala 多繼承 & 依賴注入繼承依賴注入
- Scala的繼承繼承
- Scala學習(八)---Scala繼承繼承
- 多繼承 與 多重繼承繼承
- 多繼承繼承
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- 繼承與多型繼承多型
- 繼承和多型繼承多型
- day23:單繼承&多繼承&菱形繼承&__init__魔術方法繼承
- python 基礎之繼承、重寫、多繼承Python繼承
- Cris 的 Scala 筆記整理(八):物件導向中級-繼承和多型筆記物件繼承多型
- java繼承與多型Java繼承多型
- 繼承+多型+抽象類繼承多型抽象
- Castle 多繼承選擇AST繼承
- odoo 繼承(owl繼承、web繼承、view繼承)Odoo繼承WebView
- JavaScript 的繼承與多型JavaScript繼承多型
- Python 繼承 和 多型Python繼承多型
- OOP的多型和繼承OOP多型繼承
- TypeScript(5)類、繼承、多型TypeScript繼承多型
- Javascript的繼承與多型JavaScript繼承多型
- python 多繼承詳解Python繼承
- 原型,繼承——原型繼承原型繼承
- 菱形繼承,虛繼承繼承
- 18、繼承以及繼承中成員變數和成員方法的重名問題繼承變數
- JS中的多種繼承方式JS繼承
- Java 繼承與多型實驗Java繼承多型
- C中的繼承和多型繼承多型
- C++多繼承的細節C++繼承
- C++繼承詳解:共有(public)繼承,私有(private)繼承,保護(protected)繼承C++繼承
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 三種繼承的方法:public 繼承/private繼承/protected繼承詳解及區別繼承
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- [許可權設計]組的繼承:需要從多個父組繼承嗎?繼承
- Python中的繼承和多型Python繼承多型
- 太極1:繼承和多型2繼承多型
- C語言實現繼承多型C語言繼承多型