关闭

Scala中特质trait与抽象类abstract的区别

标签: scala
1998人阅读 评论(0) 收藏 举报
分类:

来源:https://twitter.github.io/scala_school/zh_cn/basics.html

什么时候应该使用特质而不是抽象类? 

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

  • 优先使用特质。一个类扩展多个特质是很方便的,但却只能扩展一个抽象类。
  • 如果你需要构造函数参数,使用抽象类。因为抽象类可以定义带参数的构造函数,而特质不行。例如,你不能说trait t(i: Int) {},参数i是非法的。

你不是问这个问题的第一人。可以查看更全面的答案: stackoverflow: Scala特质 vs 抽象类 , 抽象类和特质的区别, and Scala编程: 用特质,还是不用特质?

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:149619次
    • 积分:990
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:52篇
    • 译文:0篇
    • 评论:8条
    最新评论