Scala语言入门七(trait)

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)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容