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
Posted by '김용환'
,