美文网首页
Scala语言入门七(trait)

Scala语言入门七(trait)

作者: 阿靖哦 | 来源:发表于2020-12-17 11:32 被阅读0次

Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。与接口不同的是,它还可以定义属性和方法的实现。一般情况下Scala的类只能够继承单一父类,
但是如果是 Trait(特征) 的话就可以继承多个,从结果来看就是实现了多重继承

一、Trait的定义

Trait(特征) 定义的方式与类类似,但它使用的关键字是trait

/**
 * @author Gjing
 **/
trait Person {
  /**
   * 说
   * @param content 内容
   */
  def say(content: String): Unit

  /**
   * 吃
   * @param food 食物
   */
  def eat(food: String): Unit = say("在吃" + food)
}

上面定义了两个方法,say()方法没有定义实现,eat()方法定义了方法的默认实现,子类只需实现say()方法即可,从这里可以看出,Scala中的Trait其实更像Java中的抽象类. 下面是一个完整的示例

/**
 * @author Gjing
 **/
obje

  def main(args: Array[String]): Unit = {
    val min = new XiaoMin
    min.say("你好")
    min.eat("苹果")
  }
}

/**
 * @author Gjing
 */
class XiaoMin extends Person {
  override def say(content: String): Unit = println(content)
}

相关文章

  • Scala语言入门七(trait)

    Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。与接口不同的是,它还可以定义属...

  • scala(十二) 特质

    特质的定义 Scala语言中,采用特质(trait)来代替接口的概念,也就是说,多个类具有相同的特质(trait)...

  • Scala语言入门

    Scala语言入门——大纲

  • 从零开始学习Spark(二)Scala基础

    Scala基础 Spark的原生语言是Scala,因此入门一下Scala是学习Spark的第一步,下面就快速入门一...

  • trait in scala

    大多数情况下, Scala 中的 trait 相当于 Java 中的借口, 或者 Perl 6 中的 Role。S...

  • scala学习 - 特质

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

  • scala的Trait

    Trait基础 scala 中的Trait和Java中的接口(interface)极其类似 接口是彻底的抽象类,所...

  • Spark Sql 源码剖析(二): TreeNode

    零、前置知识 Scala Product trait 一、CurrentOrigin 使用 object Curr...

  • trait

    在scala中,trait相当于java中的interface关键字,可以用来定义接口,但是trait除了定义接口...

  • Scala的trait

    今天看一下scala的trait,用法不讲,就看一下编译再反编译的源码定义一个trait 使用javac命令编译这...

网友评论

      本文标题:Scala语言入门七(trait)

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