Najlepszy samouczek Scala Trait (funkcja) W 2024 r. W tym samouczku możesz dowiedzieć się Charakterystyka celu budowy,
Scala cecha (cechy) równoważne interfejs Java, w rzeczywistości, to jest potężny niż interfejs również.
Interfejs jest inna, może osiągnąć określenia właściwości i metody.
W normalnych warunkach klasa Scala mogą dziedziczyć tylko jedno z rodziców, ale jeśli Trait (funkcja), następnie można dziedziczyć wiele, od wyników jest wprowadzenie wielokrotnego dziedziczenia.
Informacje cecha (cecha) jest podobna do definicji klasy, lecz używa kluczowecechy, takie jak:
trait Equal { def isEqual(x: Any): Boolean def isNotEqual(x: Any): Boolean = !isEqual(x) }
Przede Trait (charakterystyka) składa się z dwóchmetod: IsEqual i isNotEqual.Metoda IsEqual nie jest zdefiniowane w implementacji metody isNotEqual to określenie metod. Podklasy dziedziczyć cechy mogą być realizowane metody nie jest realizowany. Faktycznie więc Scala Trait (funkcja) jak Java klasy abstrakcyjnej.
Poniższe przykłady pokazują kompletne funkcje:
/* 文件名: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)) } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test false true true
Funkcja ta może mieć również konstruktorów i inne funkcje organizmu oświadczenia sił pola Inicjalizacja w składzie. Te wypowiedzi w dowolnych obiektów zmieszanych w strukturę charakteryzuje się tym, zostaną wykonane.
Kolejność wykonywania konstruktora:
Konstruktor liniowa sekwencja odwrotnej klasy. Linearyzacja jest opisanie rodzaju wszelkiego rodzaju super-miłe specyfikacjami technicznymi.