Scala Q&A : 特质trait和抽象类abstract class的区别?
来源:互联网 发布:水浒卡片全套 淘宝 编辑:程序博客网 时间:2024/06/05 07:46
参考 Effective Scala 对特质的观点.
什么时候应该使用特质而不是抽象类? 如果你想定义一个类似接口的类型, 你可能会在特质和抽象类之间难以取舍. 这两种形式都可以让你定义一个类型的一些行为, 并要求继承者定义一些其他行为. 一些经验法则:优先使用特质. 一个类扩展多个特质是很方便的, 但却只能扩展一个抽象类.
如果你需要构造函数参数, 使用抽象类. 因为抽象类可以定义带参数的构造函数, 而特质不行. 例如, 你不能说trait t(i: Int) {}, 参数i是非法的.
你不是问这个问题的第一人. 可以查看更全面的答案: stackoverflow: Scala特质 vs 抽象类 , 抽象类和特质的区别, and Scala编程: 用特质, 还是不用特质?以上内容援引自 Scala 课堂!
个人理解,主要原因是由于Scala支持继承多个trait,所以可以更灵活.
阅读全文
0 0
- Scala Q&A : 特质trait和抽象类abstract class的区别?
- Scala中特质trait与抽象类abstract的区别
- scala 抽象类(abstract)与特质(trait)
- scala class和object,trait的区别
- 【scala 特质】Scala的Trait特质使用
- 【Scala 抽象类】Scala的抽象类:abstract class
- scala中的class、object和trait的区别
- Scala中object\class\trait的区别
- 抽象类(abstract class)和接口(interface)的区别?
- scala入门-07特质类(trait)的使用
- scala 用trait还是用abstract class
- scala的继承、组合与特质trait
- scala-特质(trait)
- Scala之特质Trait
- Scala中object、class与trait的区别
- Scala中object、class与trait的区别
- Java 接口(interface)和抽象类(abstract class)区别
- Java 接口(interface)和抽象类(abstract class)区别
- 程序设计基础知识
- ADB
- [leetcode]1. Two Sum
- opencv设置摄像头分辨率
- Mac系统中配置Tomcat环境
- Scala Q&A : 特质trait和抽象类abstract class的区别?
- 建造高铁
- tp3.2中微信支付
- C#中ToString()格式详解
- C++中输入输出的十六进制八进制
- 解决AndroidStudio2.3版本可能没有xml预览视图的问题。
- mongo 对数据很严格 在使用组装条件的时候需要注意 字段的类型, 分享几个转换的函数
- 软件测试之App测试-回归测试
- 数据库判断是否为某一个值时sql