O melhor tutorial Scala Trait (recurso) em 2024. Neste tutorial você pode aprender Características da ordem de construção,
Scala Trait (características) interface Java equivalente, na verdade, é poderoso do que a interface também.
A interface é diferente, pode conseguir a definição das propriedades e métodos.
Em circunstâncias normais classe Scala só pode herdar uma mãe solteira, mas se Trait (feature), então você pode herdar múltipla, a partir dos resultados é implementar a herança múltipla.
Informação traço (característica) é semelhante à definição da classe, mas utiliza a palavra-chavecaracterística, como se segue:
trait Equal { def isEqual(x: Any): Boolean def isNotEqual(x: Any): Boolean = !isEqual(x) }
Acima Trait (característica), composto por doismétodos: isEqual e isNotEqual.Método isEqual não é o método definido pela implementação, é isNotEqual definir os métodos de. Método subclasses herdam as características podem ser implementadas não está implementada. Então, na verdade Scala Trait (recurso) como Java classe abstrata.
Os exemplos a seguir demonstram as características completas:
/* 文件名:Test.scala * author:本教程 * url:www.w3write.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)) } }
Implementação do código acima, a saída é:
$ scalac Test.scala $ scala Test false true true
Recurso também podem ter construtores, e outras características do corpo por declarações do campo de inicialização constituído. Estas declarações em quaisquer objetos misturados na estrutura é caracterizada será executado.
A ordem de execução do construtor:
Construtor é uma sequência linear de classe inversa. Linearização é para descrever um tipo de todos os tipos de especificações técnicas super-amáveis.