Scala中抽象类(abstract)和特质(trait)的异同

  • 抽象类和特质都可以同时定义抽象方法和实现方法
  • 抽象类和特质都可以使用匿名子类的方式实例化
  • 抽象类可以和普通类一样具有构造函数和辅助构造函数,在匿名子类实例化的时候和普通类一样传参调用构造函数,而特质在Scala3.0之前没有参数特性
  • 由于Scala是单继承的,只能使用 extends 关键词扩展一个抽象类,但是却可以使用 with 关键词扩展多个特质
  • extends 关键词可以用于抽象类和特质,with 关键词只能用于特质
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容