Inheriting a trait twice

本小妞迷上赌 提交于 2019-11-29 09:11:52

Second snippet works because of trait linearization. The compiler will organize the traits into a linear list so that Trait only appears once. I think the linearization is

Implementation, Trait, Abstraction, ScalaObject, AnyRef, Any

See this chapter from Programming Scala for a great explanation.

This is primarily done to have a consistent approach to the diamond inheritance problem and is useful in that case.

Since Trait cannot appear twice after linearization, it does not make sense to write Trait with Trait and it makes sense to be disallowed.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!