scala用trait仍是用abstract class

何时应该使用特质而不是抽象类? 函数

若是你想定义一个相似接口的类型,你可能会在特质和抽象类之间难以取舍。这两种形式均可以让你定义一个类型的一些行为,并要求继承者定义一些其余行为。一些经验法则:code

  • 优先使用特质。一个类扩展多个特质是很方便的,但却只能扩展一个抽象类。
  • 若是你须要构造函数参数,使用抽象类。由于抽象类能够定义带参数的构造函数,而特质不行。例如,你不能说trait t(i: Int) {},参数i是非法的。
相关文章
相关标签/搜索