Latest web development tutorials

Scala Trait (funzione)

Scala Trait (caratteristiche) interfaccia Java equivalente, infatti, è potente rispetto l'interfaccia anche.

L'interfaccia è differente, può raggiungere la definizione delle proprietà e metodi.

In circostanze normali classe Scala può ereditare un solo genitore, ma se Trait (funzione), allora si può ereditare multipla, dai risultati è quello di implementare l'ereditarietà multipla.

Informazioni Trait (caratteristica) è simile alla definizione della classe, ma utilizza la parolatratto, come segue:

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

Sopra Trait (caratteristica) composto da duemetodi: IsEqual e isNotEqual.Metodo IsEqual non è definito dall'implementazione metodo, isNotEqual definire le modalità di. Metodo sottoclassi ereditano le caratteristiche possono essere implementate non è implementata. Quindi, in realtà Scala Trait (funzione) come Java classe astratta.

I seguenti esempi dimostrano le caratteristiche complete:

/* 文件名: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))
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ scalac Test.scala 
$ scala Test
false
true
true

Caratteristiche di ordine di costruzione

Feature può anche avere i costruttori, e altre caratteristiche del corpo dalle dichiarazioni del campo di inizializzazione costituito. verranno eseguite Queste dichiarazioni a oggetti mescolati nella struttura è caratterizzata.

L'ordine di esecuzione del costruttore:

  • Chiamare il costruttore della superclasse;
  • costruttore caratterizzato dopo la costruzione della superclasse, prima dell'esecuzione costruttore di classe;
  • Trait è configurato da sinistra a destra;
  • Ogni funzione tra il tratto genitore è stato costruito prima;
  • Se ci sono più le caratteristiche di una struttura caratteristiche genitore, tratto genitore non si ripeterà
  • Tutte le funzioni sono configurate sottoclasse finito viene costruito.

Costruttore è una sequenza lineare di classe inversa. Linearizzazione è quello di descrivere un tipo di tutti i tipi di specifiche tecniche super-gentile.