Latest web development tutorials

Scala Тре (функция)

Scala Тре (характеристики) эквивалентный интерфейс Java, на самом деле, это мощный, чем интерфейс также.

Интерфейс отличается, он может достичь определение свойств и методов.

В нормальных условиях Scala класс может наследовать только один родительский, но если Тре (функция), то вы можете наследовать несколько, из результатов является реализация множественного наследования.

Информация Тре (особенность) аналогичен определению класса, но он используетпризнак ключевых слов,следующим образом :

trait Equal {
  def isEqual(x: Any): Boolean
  def isNotEqual(x: Any): Boolean = !isEqual(x)
}

Над Тре (характеристики) , составленной двумяспособами: IsEqual и isNotEqual.Метод IsEqual не определяется реализацией метода, он isNotEqual определяют методы. Подклассы наследуют признаки могут быть реализованы метод не реализован. Так что на самом деле Scala Trait (функция), как Java абстрактного класса.

Следующие примеры демонстрируют, полные функции:

/* 文件名:Test.scala
 * author:本教程
 * url:www.w3big.com
 */
trait Equal {
  def isEqual(x: Any): Boolean
  def isNotEqual(x: Any): Boolean = !isEqual(x)
}

class Point(xc: Int, yc: Int) extends Equal {
  var x: Int = xc
  var y: Int = yc
  def isEqual(obj: Any) =
    obj.isInstanceOf[Point] &&
    obj.asInstanceOf[Point].x == x
}

object Test {
   def main(args: Array[String]) {
      val p1 = new Point(2, 3)
      val p2 = new Point(2, 4)
      val p3 = new Point(3, 3)

      println(p1.isNotEqual(p2))
      println(p1.isNotEqual(p3))
      println(p1.isNotEqual(2))
   }
}

Реализация указанного выше кода, выход:

$ scalac Test.scala 
$ scala Test
false
true
true

Характеристики строительного заказа

Функция также может иметь конструкторов, и другие особенности тела заявлениями поле инициализации в составе. Эти заявления на любых объектах, смешанных в структуру характеризуется тем, будет выполняться.

Порядок выполнения конструктора:

  • Вызвать конструктор суперкласса;
  • Характеризуется конструктор после конструктора суперкласса, перед выполнением конструктора класса;
  • Черта настраивается слева направо;
  • Каждый признак среди родительского признака был построен;
  • Если есть несколько особенностей одного из родителей характеристики, материнская черта не будет повторяться структура
  • Все функции настраиваются законченный подкласс построен.

Конструктор представляет собой линейную последовательность обратного класса. Линеаризация описать тип всех видов супер-рода технических спецификаций.