This Scala tutorial은 저를 혼동시킵니다. Node
추상 형식은 ... 다형성의 전통적인 규칙에 따라하지 않는 것스칼라 추상 유형 및 다형성
type Node <: NodeIntf // NodeIntf is assignable to Node.
abstract class NodeIntf {
def connectWith(node: Node): Edge
}
class NodeImpl extends NodeIntf {
def connectWith(node: Node): Edge = {
val edge = newEdge(this, node) // NodeImpl (this) is assignable to NodeIntf.
edges = edge :: edges
edge
}
}
protected def newEdge(from: Node, to: Node): Edge
Node = NodeIntf
및 NodeIntf = NodeImpl
경우에, 우리는 왜 Node = NodeImpl
을 할 수 있습니까? 나는 분명히 위의 코드가 컴파일되지 않을 것이기 때문에 - 왜 '자체 형식의 참조'를 사용해야합니까? (see tutorial)