El mejor tutorial de Scala Rasgo (función) en 2024. En este tutorial podrás aprender Las características de construcción fin,
Scala Rasgo (características) interfaz Java equivalente, de hecho, es potente que la interfaz también.
La interfaz es diferente, se puede lograr la definición de las propiedades y métodos.
En circunstancias normales Scala clase sólo puede heredar un solo padre, pero si Rasgo (función), entonces usted puede heredar múltiples, a partir de los resultados es implementar la herencia múltiple.
Información Trait (función) es similar a la definición de la clase, pero utiliza la palabra claverasgo, como sigue:
trait Equal { def isEqual(x: Any): Boolean def isNotEqual(x: Any): Boolean = !isEqual(x) }
Por encima de Rasgo (característica) compuesta por dosmétodos: ISEQUAL y isNotEqual.ISEQUAL método no es el método definido por la implementación, se isNotEqual definir los métodos de. no se ha implementado el método subclases heredan las características se pueden implementar. Así que de hecho Scala Rasgo (función) como clase abstracta de Java.
Los siguientes ejemplos demuestran las 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)) } }
Aplicación del código anterior, la salida es:
$ scalac Test.scala $ scala Test false true true
Función también puede tener constructores, y otras características del cuerpo por las declaraciones de la inicialización de campo constituido. se ejecutarán estas declaraciones en los objetos mezclados en la estructura se caracteriza.
La orden de ejecución del constructor:
Constructor es una secuencia lineal de clase inversa. Linealización es para describir un tipo de todo tipo de especificaciones técnicas súper amables.