scala의 어떤 클래스가 클래스를 상속받고 트레이트(trait)를 믹스인하는 초기화는 다음 순서와 같다.
object Main extends App {
trait T1 {
println("t1") // 4
}
trait T2 {
println("t2") // 5
}
class BaseParent {
println("base-parent") // 2
}
class Parent extends BaseParent {
println("parent") // 3
}
class Example extends Parent with T1 with T2 {
println("example") // 6
}
println(s"before") // 1
new Example
println(s"after") // 7
}
결과는 다음과 같다.
부모 클래스의 부모 클래스부터 초기화되고 다음에 부모 클래스가 생성된다.
다음에 믹스인(mix in)한 트레이트가 초기화된다.
before
base-parent
parent
t1
t2
example
after
'scala' 카테고리의 다른 글
[scala] 쉘 실행하기 (0) | 2016.12.13 |
---|---|
[scala] 클래스 초기화하기(생성) (0) | 2016.12.13 |
[scala] for 내장 (0) | 2016.12.08 |
[scala] try-catch/Try-match/Either/Validation (0) | 2016.12.06 |
[scala] 부분 적용 함수 / 커링 / 부분 함수 (0) | 2016.12.05 |