나는이 코드가 작동하는 이유에 대해 궁금하고 스칼라를 사용하고있다.스칼라에서 부모 특성이 자식 클래스에 구현 된 메서드를 호출 할 수 있습니까?
trait Base {
def foo(x: Int): Int
}
trait A extends Base {
def fooA(x: Int): Int = {
foo(x)
}
}
class Impl extends Base with A {
override def foo(x: Int): Int = x
}
val a = new Impl
a.fooA(10)
a.fooA(10)
의 결과 방법 fooA
Impl
는 클래스 구현 foo
방법을 사용하고, 형질 A
그러나 10
이다.
또한 Impl
클래스는 클래스 A
(Impl
선언의 with A
)을 확장합니다.
원형이 아닙니까?
어떻게 가능합니까?
감사합니다.