【发布时间】:2011-08-29 13:31:11
【问题描述】:
这不起作用:
trait Trait
class Class extends Trait with Trait
编译器抱怨:
<console>:8: error: trait Trait is inherited twice
class Class extends Trait with Trait
^
<console>:8: error: trait Trait is inherited twice
class Class extends Trait with Trait
^
这样做:
trait Trait
class Abstraction extends Trait
class Implementation extends Abstraction with Trait
问题:
- 为什么有效?
- 第二个 sn-p 有何不同? (关于双重继承问题)
- 第二个 sn-p 或模式是否有用?
【问题讨论】:
-
你有一个实际的例子,第一个不起作用是一个真正的问题吗?
-
这个问题的目的不是找出为什么第一个不起作用,而是找出第二个为什么起作用。
-
有用的链接:chapter from Programming in Scala 展示了线性化的工作原理。
标签: scala inheritance linearization