zoukankan      html  css  js  c++  java
  • Scala 面向对象(九):特质(接口) 二

    1 带有具体实现的特质

    说明:和Java中的接口不太一样的是特质中的方法并不一定是抽象的,也可以有非抽象方法(即:实现了的方法)。

     2 带有特质的对象,动态混入

    1)除了可以在类声明时继承特质以外,还可以在构建对象时混入特质,扩展目标类的功能

    2)此种方式也可以应用于对抽象类功能进行扩展

    3)动态混入是Scala特有的方式(java没有动态混入),可在不修改类声明/定义的情况下,扩展类的功能,非常的灵活,耦合性低 。

    4)动态混入可以在不影响原有的继承关系的基础上,给指定的类扩展功能。

    3 叠加特质

    基本介绍

    构建对象的同时如果混入多个特质,称之为叠加特质,

    那么特质声明顺序从左到右,方法执行顺序从右到左。

    目的:分析叠加特质时,对象的 构建顺序,和执行方法的顺序

     

     

    叠加特质注意事项和细节

    1)特质声明顺序从左到右。

    2)Scala在执行叠加对象的方法时,会首先从后面的特质(从右向左)开始执行

    3)Scala中特质中如果调用super,并不是表示调用父特质的方法,而是向前面(左边)继续查找特质,如果找不到,才会去父特质查找

    4)如果想要调用具体特质的方法,可以指定:super[特质].xxx(…).其中的泛型必须是该特质的直接超类类型

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/13262792.html

  • 相关阅读:
    Java中的数据类型
    SSE2 Intrinsics各函数介绍[转]
    mac terminal的使用技巧
    vi打开二进制文件
    svn
    fitness
    <正见>摘抄
    管理自己
    [C++程序设计]基于对象的程序设计 基于对象的程序设计
    [C++程序设计]引用
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13262792.html
Copyright © 2011-2022 走看看