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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 多繼承 與 多重繼承繼承
- 多繼承繼承
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- python 基礎之繼承、重寫、多繼承Python繼承
- 繼承與多型繼承多型
- 多型和繼承多型繼承
- day23:單繼承&多繼承&菱形繼承&__init__魔術方法繼承
- Cris 的 Scala 筆記整理(八):物件導向中級-繼承和多型筆記物件繼承多型
- Python 繼承 和 多型Python繼承多型
- java繼承與多型Java繼承多型
- odoo 繼承(owl繼承、web繼承、view繼承)Odoo繼承WebView
- JavaScript 的繼承與多型JavaScript繼承多型
- Javascript的繼承與多型JavaScript繼承多型
- 封裝、繼承和多型封裝繼承多型
- TypeScript(5)類、繼承、多型TypeScript繼承多型
- OOP的多型和繼承OOP多型繼承
- 菱形繼承,虛繼承繼承
- 原型,繼承——原型繼承原型繼承
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- JS中的多種繼承方式JS繼承
- Python中的繼承和多型Python繼承多型
- 實驗五 繼承和多型繼承多型
- 實驗5 繼承和多型繼承多型
- 18、繼承以及繼承中成員變數和成員方法的重名問題繼承變數
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- python:super()對多繼承的影響Python繼承
- [c++] 繼承和多型整理二C++繼承多型
- aardio 實現封裝繼承多型封裝繼承多型
- C語言實現繼承多型C語言繼承多型
- PHP模擬多繼承的方式:traitsPHP繼承AI
- Java中的類繼承與多型Java繼承多型
- 面向2-封裝、繼承、多型封裝繼承多型
- 太極1:繼承和多型2繼承多型
- js實現繼承的方法以及優缺點JS繼承
- 繼承繼承
- C++ 多級繼承與多重繼承:程式碼組織與靈活性的平衡C++繼承
- C++中公有繼承、保護繼承、私有繼承的區別C++繼承