• 【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第2小节:动手实战Scala面向对象编程(2)


    3,动手实战Scala中的抽象类

     

    抽象类的定义需要使用abstract关键字:

     

    上面的代码定义并实现了抽象方法,需要注意的是我们把直接运行的代码放在了App这个trait的子类中,关于App内部帮助我们实现了main方法并管理了工程师写的代码;

    下面看一下抽象类中未被初始化的变量的使用:

    4,动手实战Scala中的trait

     

    trait类似于Java 8中可以带default method的接口。

    trait中可以带有实现的方法,也可以带有抽象方法,使用trait的方式是with而混入类中。

    下面先看trait的一个实例:

    注意,我们这里使用trait的使用使用的是extends,这是因为ConcreteLogger没有继承其它的类或者trait的缘故;

    子trait可以覆写实现父trait的方法:

    如果子trait在如果覆写父trait中已经实现的方法就必须使用override关键字:

    下面展示一下在对象中混入trait:

  • 相关阅读:
    NOIp2014 Day2T3 解方程 秦九韶算法
    Luogu P1082 同余方程 拓展欧几里得
    Luogu P1351 联合权值 前缀和
    [USACO06JAN]冗余路径Redundant Paths 无向图tarjan缩点
    P1073 最优贸易 dp
    LOJ #6279. 数列分块入门 3
    LOJ #6278. 数列分块入门 2
    分块
    字典树Trie
    KMP
  • 原文地址:https://www.cnblogs.com/spark-china/p/4127277.html
Copyright © 2020-2023  润新知