← 返回首页
Scala接口
发表时间:2023-09-08 14:37:04
Scala接口

Scala中的接口称为trait,trait类似于Java中的interface。

1.trait

在triat中可以定义抽象方法.类可以使用extends 关键字继承trait,无论继承类还是trait统一都是使用extends这个关键字。类继承trait后,必须实现trait中的抽象方法,实现时不需要使用override关键字。

scala不支持对类进行多继承,但是支持对trait进行多重继承,使用with关键字即可。下面我们就来看一个接口多继承的案例。


package com.simoniu

/**
 * Created by xuwei
 */
object PersonDemo {
  def main(args: Array[String]): Unit = {
    val p1 = new Person("tom")
    val p2 = new Person("jack")
    p1.sayHello(p2.name)
    p1.makeFriends(p2)
  }
}

trait HelloTrait {
  def sayHello(name: String)
}

trait MakeFriendsTrait {
  def makeFriends(p: Person)
}

class Person(val name: String) extends HelloTrait with MakeFriendsTrait {
  def sayHello(name: String) = println("Hello, " + name)

  def makeFriends(p: Person) = println("Hello, my name is " + name + ", your name is " + p.name)
}

运行结果:

Hello, jack
Hello, my name is tom, your name is jack