9.3.2 最简单的特质: 当做接口使用的特质

package com.atguigu.day06

trait Logger {
  // 未被实现的方法就是抽象方法, 不需要加abstract关键字
  def log(msg: String)
}

子类实现:

class ConsoleLogger extends Logger {
  def log(msg: String): Unit = {
    println(msg)
  }
}

说明:

  • 实现特质方法的时候的, 可以加override, 也可以不加

  • 如果一个类没有继承任何其他的类, 则使用extends来混入特质.否则只能使用with

  • 如果你需要的特质不止一个, 可以通过with关键字来添加另外的特质.

    class ConsoleLogger extends Logger with Serializable with Cloneable {
    def log(msg: String): Unit = {
      println(msg)
    }
    }
    
  • 所有的 Java 接口都可以作为 Scala 中的特质使用.

  • 和 Java 一样, Scala 只能继承一个类, 但是可以有任意多个特质

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-04-12 14:22:19

results matching ""

    No results matching ""