美文网首页
Scala-13.特质

Scala-13.特质

作者: 悠扬前奏 | 来源:发表于2019-07-17 22:33 被阅读0次
  • 大多数情况下Scala的特质(trait)相当于Java的接口。

    • 方法不需要参数,在def后面指定方法名即可
    • 需要参数只需要罗列出来即可
    • 一个类需要继承特质时,使用extends和with关键字
      • 一个类继承一个特质特质使用extends
      • 一个类继承多个特质,第一个特质使用extends,其余特质使用with
      • 继承一个类和一个或者多个特质时,对类使用extends,对特质使用with
    • 除非实现特质的是抽象类,否则必须实现特质的所有抽象方法。
    • 如果类继承了一个特质但是没有实现它的抽象方法,这个类必须被声明为抽象类。
  • 可以在特质中声明一个字段,给或者不给初始值,任何继承了这个特质的类都可以使用这些字段

    • 给了初始值就是实际字段
    • 没有给初始值就是抽象字段
    • 继承了这个特质的类中,需要定义“抽象字段”的值,否则,这个类必须被声明为抽象类
    • 特质的字段可以生命为var或者val。在一个子类(子特质)中复写特质中的var字段,不需要override关键字,但是复写特质中的val字段时需要使用override关键字
  • 可以像Java中的抽象类一样使用特质

    • 在特质中定义方法,继承了这个特质的类中可以直接使用这些方法,也可以覆盖这些方法。
    • 如果一个类继承了一个特质并且没有实现该特质的抽象方法,那么这个类必须被声明为抽象类。
    • 一个类只能继承一个抽象类,但是可以继承多个特质

相关文章

  • Scala-13.特质

    大多数情况下Scala的特质(trait)相当于Java的接口。方法不需要参数,在def后面指定方法名即可需要参数...

  • Scala-13.包和导包

    Scala导入成员变量的方法: 随处可使用import 导入类,包或者对象 导入类时隐藏并且重命名它们 Scala...

  • 双性化

    双性化,是个有趣的话题,它指同时具备男性特质和女性特质。那什么是男性特质、女性特质呢? 男性特质:也叫工具性特质,...

  • Scala学习笔记 A2/L1篇 - 特质Traits

    教材:快学Scala chapter 10. 特质 Traits Scala特质与Java接口不同,Scala特质...

  • scala学习 - 特质

    本文来自《Programming in Scala》一书 Scala学习之特质(trait) 1 特质的定义 特质...

  • 特质

    今天看到一个领导发的一篇文章,主要是说,如果人员不匹配,何必去培养一个不符合的人?直接招聘一个新人就行了,对的,我...

  • 特质

    我问朋友,说:“我是什么类型的阿?“说不出来。”我又想了想,她又是什么样的呢?特别之处是喜欢尝试不一样的东西,没遇...

  • 特质

    里里是轻松流畅欢乐;画画是画得像的技能;建筑手绘是家的温暖和安全;箫是沉韵;日语英语韩语是交谈自信大方开朗;摄影外...

  • 特质

    不大主动去联系人。由于是个慢热的人,表面看起来朋友很多,但真正挂念和在乎的或许只有那几个人而已。也就是说,大部分的...

  • 特质

    出现在你生命中的每个人每件事,都带着独一无二的特质。降临那一刻,普通却又不寻常

网友评论

      本文标题:Scala-13.特质

      本文链接:https://www.haomeiwen.com/subject/pvutlctx.html