• Scala特质


    特质:trait是Scala里代码复用的基础单元。特质封装了方法和字段的定义,并可以通过混入到类中重用它们。不像类的继承那样,每个类都只能继承唯一的超类,类可以混入任意个特质。它们最常用到的两种方式:拓宽瘦接口为胖接口和定义可堆叠的改变。

    这个特质名为Philosophical。它没有声明超类,因此和类一样,有个缺省的超类AnyRef。它定义了一个方法,叫做philosophize,具体的。这是个简单的特质,仅够说明特质如何工作。一旦特质被定义了,就可以使用extends或with关键字,把它混入到类中。下列这种情况下隐式地继承了特质的超类,从特质继承的方法可以像从超类继承的方法那样使用。

    特质同样也是类型:phil的类型是Philosophical,一个特质。因此,变量phil可以被初始化为任何混入了Philosophical特质的类的对象。

    特质就像是带有具体方法的Java接口,不过其实它能做的更多。特质可以,比方说,声明字段和维持状态值。实际上,你可以用特质定义做任何用类定义做的事,并且语法也是一样的,除了两点。第一点,特质不能有任何“类”参数,也就是说,传递给类的主构造器的参数。

  • 相关阅读:
    windows系统下hosts文件的改写(为了测试nginx内网的证书代理,需要做域名解析)
    搭建jenkins
    Jsp传递参数的方法
    防止自己的网站被别人frame引用造成钓鱼
    Jsp连接Mysql数据库取数方法
    Win7下安装Mysql方法
    jsp建立错误页自动跳转
    jsp-forward跳转
    jvm栈和堆详解
    Gridpanel多种操作帮助文档
  • 原文地址:https://www.cnblogs.com/yangsy0915/p/4993003.html
Copyright © 2020-2023  润新知